|
|
|
| Здравствуйте Уважаемое сообщество
скажите как из участка кода, он будет хранится в столбце zagolovok БД new_bd сделать выборку
<p class="index_lessons"><img src="lessons/les1726/mini.jpg" alt="миниатюра к уроку Создаём в Фотошоп коллаж
полный таинственности" title="миниатюра к уроку Создаём в
Фотошоп коллаж полный таинственности" width="42"
height="42"/><a href="lessons.php?rub=3&id=1726">Создаём в
Фотошоп коллаж полный таинственности</a><span>Автор/Переводчик:
<a class="small" href="/lessons.php?aut=73">Александра
Анцыперович</a></span> <br /> <span class="Hard">Сложность:
<a class="small" href="/lessons.php?dif=3">Усложненная</a></span></p>
|
Нужно из этого участка кода оставить только ссылку <a href="lessons.php?rub=3&id=1726">, даже не саму ссылку а нужен только текст lessons.php?rub=3&id=1726 + ещё нужно к этому тексту добавить адрес домена http://www.name.ru/, в итоге должно получится
http://www.name.ru/lessons.php?rub=3&id=1726
mysql_query("SELECT zagolovok FROM new_bd WHERE условие",$db)
|
как то с помощью like это можно прописать, вырезать из строки нужную нам часть,
ни поможете с условием? | |
|
|
|
|
|
|
|
для: pautina
(21.12.2011 в 08:59)
| | Исходные заголовки нужно вытащить с кода страницы http://www.photoshop-master.ru/lessons.php?rub=1
В итоге выборка дожна содержать адреса ссылок на все заголовки.
lessons.php?rub=1&id=1689
lessons.php?rub=1&id=1677
...
lessons.php?rub=1&id=1424
Для того чтобы в строке найти вхождение можно использовать
mysql_query("SELECT zagolovok FROM new_bd WHERE zagolovok REGEXP 'lessons.php?rub=3&id=1726'",$db)
|
насколько правильно это описано регулярными выражениями? | |
|
|
|
|
|
|
|
для: pautina
(21.12.2011 в 14:28)
| | Правильно, если работает как надо, только вам и выбирать (в выражении SELECT) тоже придется zagolovok REGEXP 'lessons.php?rub=3&id=1726', а не просто zagolovok. | |
|
|
|
|
|
|
|
для: cheops
(21.12.2011 в 14:58)
| |
mysql_query("SELECT zagolovok FROM new_bd WHERE (REGEXP 'lessons.php?rub=3&id=1726'",$db))
|
Как мне в этом запросе регулярными выражениями прописать условие что адрес заголовка может быть
lessons.php?rub=1&id=1689
lessons.php?rub=1&id=1677
...
lessons.php?rub=1&id=1424
|
Левая часть одинакова, меняется только правая часть после символа = и содержит 4,3,2 любые числа как символа строки (число целое 1 значное) | |
|
|
|
|
|
|
|
для: pautina
(21.12.2011 в 17:54)
| | 3 и 1726 следует использовать [0-9]+
SELECT zagolovok FROM new_bd
WHERE (REGEXP 'lessons.php?rub=[0-9]+&id=[0-9]+'
|
| |
|
|
|
|
|
|
|
для: cheops
(21.12.2011 в 18:08)
| | Теперь мне нужно обновить содержимое ячейки таблицы
для этого я использую
UPDATE `category1` SET `Field 2` WHERE (`Field 2`='lessons.php?rub=[0-9]+&id=[0-9]+')
|
либо так
UPDATE `category1` SET `Field 2` WHERE (`Field 2`='REGEXP 'lessons.php?rub=[0-9]+&id=[0-9]+'')
|
или
UPDATE `category1` SET `Field 2`= REPLACE(`Field 2`, '<A href="lessons.php?rub=1&id=1689">Создаём абстрактное золотое кольцо в Фотошоп</A>', ''REGEXP 'lessons.php?rub=[0-9]+&id=[0-9]+''')
|
так ещё пробовал
UPDATE `category1` SET `Field 2`= REPLACE(`Field 2`, '<A href="'REGEXP 'lessons.php?rub=[0-9]+&id=[0-9]+''">'REGEXP '[a-я]'</A>', ''REGEXP 'lessons.php?rub=[0-9]+&id=[0-9]+''')
|
есть ещё такой вариант
UPDATE `category1` SET `Field 2`=REPLACE(`Field 2`, '<A href="lessons.php?rub=1&id=[0-9]">/[а-яА-Я\s]</A>', 'замена')
|
Но обновления нет
Последний вариант кода наиболее подходит, здесь замена идёт но только если всё строго прописано (без d=[0-9]">/[а-яА-Я\s] )
Как подкорректировать не подскажете? | |
|
|
|
|
|
|
|
для: pautina
(25.12.2011 в 15:07)
| | Не подскажете как мне правильно обновить содержимое таблицы
имею таблицу category1, поле где нужно обновить поля Field 2, содержимое этого поля
<A href="lessons.php?rub=1&id=1689">Создаём абстрактное золотое кольцо в Фотошоп</A>
<A href="lessons.php?rub=1&id=1677">Создай экспрессивную космическую иллюстрацию в Фотошоп</A>
<A href="lessons.php?rub=1&id=1661">Создай светящегося супергероя в Фотошоп</A>
<A href="lessons.php?rub=1&id=1641">Создаём абстрактный постер в Фотошоп</A>
<A href="lessons.php?rub=1&id=1608">Девушка в брызгах воды</A>
<A href="lessons.php?rub=1&id=1607">Создай абстракцию из фото в Фотошоп</A>
....
Мне нужно оставить только адреса ссылок
lessons.php?rub=1&id=1689
lessons.php?rub=1&id=1677
lessons.php?rub=1&id=1661
lessons.php?rub=1&id=1641
lessons.php?rub=1&id=1608
lessons.php?rub=1&id=1607
Для обновления использую UPDATE с описанием адреса ссылки и текста ссылки при помощи регулярных выражений
UPDATE `category1` SET `Field 2`=REPLACE(`Field 2`, '<A href="lessons.php?rub=1&id=[0-9]">/[а-яА-Я\s]</A>', 'замена')
|
такой код не работает
если прописывать строго для 1 определённой записи
UPDATE `category1` SET `Field 2`=REPLACE(`Field 2`, '<A href="lessons.php?rub=1&id=1677">Создай экспрессивную космическую иллюстрацию в Фотошоп</A>', 'замена')
|
то обновление идёт
как прописать чтоб обновление сработало сразу для всез записей? | |
|
|
|
|
|
|
|
для: pautina
(26.12.2011 в 12:31)
| | Нет, в операторе UPDATE в функции REPLACE() регулярные выражения не работают. Это нужно сначала извлечь номер, потом подставить его в новые запросы. | |
|
|
|
|
 5.2 Кб |
|
|
для: cheops
(26.12.2011 в 12:45)
| | Как это сделать не подскажете? файл таблицы я прикрепил. | |
|
|
|
|
|
|
|
для: pautina
(26.12.2011 в 13:57)
| | Проще всего вытащить их в PHP-обработчик, заменить там и снова положить в базу данных. | |
|
|
|
|
|
|
|
для: cheops
(26.12.2011 в 14:00)
| | Давайте сделаем через php обработчик, не подскажете какой код использовать? | |
|
|
|
|
|
|
|
для: pautina
(26.12.2011 в 14:40)
| | Если не сложно приведите структуру таблицы zagolovok, у неё первичный ключ есть? За что там можно зацепиться, чтобы различать строки друг от друга? | |
|
|
|
|
|
|
|
для: cheops
(26.12.2011 в 15:05)
| | подозрваю, что задача в корне не верна. "Нужно из этого участка кода оставить только ссылку"... Ссылки нужно выдергивать с помощью ПХП, а не через запросы... А еще лучше сделать для них специальное поле. А еще лучше... Сделать все совершенно по другому. Но для этого нужно знать, что именно хранится и зачем выдергивается | |
|
|
|
|
|
|
|
для: kosta_in_net
(26.12.2011 в 16:15)
| | Структура таблицы такая (таблица category1, вытаскиваем ссылки из Field 2)
CREATE TABLE IF NOT EXISTS category1 (
`ID` VARCHAR(255),
`Field 1` VARCHAR(255),
`Image URL 1` VARCHAR(255),
`Field 2` VARCHAR(255),
`Автор/Переводчик` VARCHAR(255),
`Сложность` VARCHAR(255),
`Field 3` VARCHAR(255)) TYPE=MyISAM;
INSERT IGNORE INTO category1 (`ID`,`Field 1`,`Image URL 1`,`Field 2`,`Автор/Переводчик`,`Сложность`,`Field 3`) VALUES
('1','Уроки Photoshop','images\\mini_19.jpg','<A href=\"lessons.php?rub=1&id=1689\">Создаём абстрактное золотое кольцо в Фотошоп</A>','','','В этом уроке вы узнаете, как при помощи кистей дыма сделать абсткатное кольцо со световыми эффектами.'),
('2','Уроки Photoshop','images\\mini_20.jpg','<A href=\"lessons.php?rub=1&id=1677\">Создай экспрессивную космическую иллюстрацию в Фотошоп</A>','','','В этом уроке вы узнаете, создать интересную иллюстрацию, используя различные техники, световые эффекты, цветокоррекцию.'),
('3','Уроки Photoshop','images\\mini_1.gif','<A href=\"lessons.php?rub=1&id=1661\">Создай светящегося супергероя в Фотошоп</A>','','','В этом уроке вы узнаете, как обычную иллюстрацию превратить в ретро-футуристическую художественную работу, а так же как сделать световой эффект быстрого движения.'),
('4','Уроки Photoshop','images\\mini_21.jpg','<A href=\"lessons.php?rub=1&id=1641\">Создаём абстрактный постер в Фотошоп</A>','','','В этом уроке вы узнаете, как создать яркую абстракную иллюстрацию при использовании стоковых изображений и инструментов Photoshop.'),
('5','Уроки Photoshop','images\\mini_22.jpg','<A href=\"lessons.php?rub=1&id=1608\">Девушка в брызгах воды</A>','','','В этом Фотошоп уроке Вы узнаете, как сделать эффектную иллюстрацию с девушкой в брызгах воды.'),
('6','Уроки Photoshop','images\\mini_23.jpg','<A href=\"lessons.php?rub=1&id=1607\">Создай абстракцию из фото в Фотошоп</A>','','','В этом уроке вы узнаете, как, при помощи различных кистей и текстур, сделать интересную абстрактную иллюстрацию.'),
('7','Уроки Photoshop','images\\mini_24.jpg','<A href=\"lessons.php?rub=1&id=1549\">Брейк-данс с Фотошоп</A>','','','В этом уроке вы узнаете, как, при помощи кистей и фигур, сделать динамическую и абстрактную иллюстрацию.'),
('8','Уроки Photoshop','images\\mini_25.jpg','<A href=\"lessons.php?rub=1&id=1523\">Сделай стильный постер в Фотошоп</A>','','','В этом уроке мы будем создавать постер, в основе которого будет символ Инь-Янь.'),
('9','Уроки Photoshop','images\\mini_26.jpg','<A href=\"lessons.php?rub=1&id=1521\">Девушка с гитарой в Фотошоп</A>','','','В этом уроке мы создадми динамичную иллюстрацию, дополненную разнообразными эффектами.'),
('10','Уроки Photoshop','images\\mini_27.jpg','<A href=\"lessons.php?rub=1&id=1515\">Рисуем на запотевшем стекле в Фотошоп - 2</A>','','','В этом уроке вы узнаете, как сделать эффект запотевшего окна с помощью кистей, фильтров и стилей слоя.'),
('11','Уроки Photoshop','images\\mini_28.jpg','<A href=\"lessons.php?rub=1&id=1477\">Создай абстрактную туманность в Фотошоп</A>','','','В этом уроке Вы узнаете, как создать абстрактную туманность, используя текстуру и фильтры.'),
('12','Уроки Photoshop','images\\mini_29.jpg','<A href=\"lessons.php?rub=1&id=1476\">Создай иллюстрацию с эффектом кристаллизации в Фотошоп</A>','','','В этом уроке вы узнаете, как создать интересную иллюстрацию с брызгами воды и эффектом кристализации.'),
('13','Уроки Photoshop','images\\mini_30.jpg','<A href=\"lessons.php?rub=1&id=1473\">Создай яркую иллюстрацию из своего фото в Фотошоп</A>','','','В этом уроке Вы узнаете, как с помощью световых эффектов сделать яркую иллюстрацию.'),
('14','Уроки Photoshop','images\\mini_31.jpg','<A href=\"lessons.php?rub=1&id=1472\">Создаём эффект калейдоскопа в Фотошоп</A>','','','В этом уроке Вы узнаете, как, комбинируя базовые цвета, формы и кисти, создать эффект яркого красочного калейдоскопа.'),
('15','Уроки Photoshop','images\\mini_32.jpg','<A href=\"lessons.php?rub=1&id=1463\">Сделай в Фотошоп бэкграунд в стиле техно</A>','','','В этом уроке вы узнаете, как создать интересный фон в стиле техно.'),
('16','Уроки Photoshop','images\\mini_33.jpg','<A href=\"lessons.php?rub=1&id=1461\">Создай радужный эффект в Фотошоп</A>','','','В этом уроке Вы узнаете, как создать эффект, напоминающий северное сияние.'),
('17','Уроки Photoshop','images\\mini_34.jpg','<A href=\"lessons.php?rub=1&id=1458\">Создаём в Фотошоп стильную иллюстрацию из фото</A>','','','В этом уроке Вы узнаете, как, при помощи корректирующих слоёв и гранж кистей, сделать интересную иллюстрацию из фото.'),
('18','Уроки Photoshop','images\\mini_35.jpg','<A href=\"lessons.php?rub=1&id=1454\">Создай в Фотошоп красочный постер со световыми эффектами</A>','','','В этом уроке вы узнаете, как создать цветной абстрактный постер с эффектом старины и световыми спецэффектами.'),
('19','Уроки Photoshop','images\\mini_36.jpg','<A href=\"lessons.php?rub=1&id=1450\">Создай красочный эффект в Фотошоп</A>','','','В этом уроке вы узнаете, как при помощи абстрактных кистей и фигур добиться интересного эффекта.'),
('20','Уроки Photoshop','images\\mini_37.jpg','<A href=\"lessons.php?rub=1&id=1424\">Магия световых эффектов в Фотошоп</A>','','','В этом уроке мы продолжим учиться добавлять световые эффекты на фото.')
|
Мне нужно оставить только адреса ссылок
lessons.php?rub=1&id=1689
lessons.php?rub=1&id=1677
lessons.php?rub=1&id=1661
lessons.php?rub=1&id=1641
lessons.php?rub=1&id=1608
lessons.php?rub=1&id=1607
либо из Field 2 вырезать, при помощи php обработчика, либо новое поле создавать, лишь бы работало.
Такой задачи ещё не встречал и как сделать не понятно. | |
|
|
|
|
|
|
|
для: pautina
(26.12.2011 в 17:21)
| | Нужно выбрать данные поля `Field 2`, а затем парсить через ПХП.
Допустим, $string содержит данные поля `Field 2`. Тогда:
preg_match('/A href="(lessons.php?[^"]*)">/', $string,$matches);
$matches[1] содержит ссылку, начинающуюся с lessons.php? (можно убрать это начало и брать все найденные ссылки). Полученные урлы полезно вписать в новое поле, чтоб больше не заниматься глупостями
П. С. Работу кода не проверял, могут быть опечатки и т. д. | |
|
|
|
|
|
|
|
для: pautina
(26.12.2011 в 17:21)
| | Тогда можно начать отталкиваться от следующей схемы
<?php
...
$query = "SELECT * FROM category1";
$cat = mysql_query($query);
if(!$cat) exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
if(mysql_num_rows($cat))
{
while($catagory = mysql_fetch_array)
{
// Осуществляем преобразование URL
...
// Обновляем запрос
$catagory['Field 2'] = mysql_escape_string($catagory['Field 2']);
$query = "UPDATE category1
SET `Field 2` = '{$catagory['Field 2']}'
WHERE ID = {$catagory['ID']}";
if(!mysql_query($query))
{
exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
}
}
}
...
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(26.12.2011 в 18:48)
| | А что ставить вместо ...?
// Осуществляем преобразование URL - здесь что имеется в виду?
Мне нужно просто этот скрипт запустить? | |
|
|
|
|
|
|
|
для: pautina
(26.12.2011 в 19:04)
| | Здесь нужно осуществить преобразование URL, например, при помощи preg_replace(). При отладки лучше сначала не осуществлять реальных преобразований, а выводить их на экран. Если составление регулярного выражения вызывает сложности лучше завести тему на форуме Регулярные выражения. | |
|
|
|
|
|
|
|
для: cheops
(26.12.2011 в 19:06)
| | Для извлечения url адреса на странице можно использовать
<?php
$str = file_get_contents("http://foxweb.net.ru/");
preg_match_all("!<a[^>]*\shref=[\"']?([^>\"'#\s]+)[\"']?[^>]*>!is",$str,$matches);
echo "<pre>";
foreach($matches[1] as $line)
echo "$line\n";
echo "</pre>";
?>
|
По регулярным выражениям можно использовать записи http://softtime.ru/forum/read.php?id_forum=6&id_theme=84056&page=1
lessons.php?rub=1&id=[0-9]
|
Как мне собрать всё вместе с вашим участком кода | |
|
|
|
|
|
|
|
для: pautina
(27.12.2011 в 06:30)
| | Я же писал:
Допустим, $string содержит данные поля `Field 2`. Тогда:
preg_match('/A href="(lessons.php?[^"]*)">/', $string,$matches);
$matches[1] содержит ссылку, начинающуюся с lessons.php? (можно убрать это начало и брать все найденные ссылки)
Это и вставить вместо
// Осуществляем преобразование URL
... | |
|
|
|
|
 5.2 Кб |
|
|
для: kosta_in_net
(27.12.2011 в 12:41)
| | В итоге код будет
<?php
$query = "SELECT * FROM category1";
$cat = mysql_query($query);
if(!$cat) exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
if(mysql_num_rows($cat))
{
while($catagory = mysql_fetch_array)
{
// Осуществляем преобразование URL
preg_match('/A href="(lessons.php?[^"]*)">/', $string,$matches);
// Обновляем запрос
$catagory['Field 2'] = mysql_escape_string($catagory['Field 2']);
$query = "UPDATE category1
SET `Field 2` = '{$catagory['Field 2']}'
WHERE ID = {$catagory['ID']}";
if(!mysql_query($query))
{
exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
}
}
}
?>
|
Насколько он рабочий, как проверить код, просто как скрипт запустить?
файл создающий таблицу из которой нужно вытащить ссылки прикрепил, таблица создатся автоматом при записи запроcа (закладка sql в phpMyAdmin).
Ни могли бы Вы проверить код? | |
|
|
|
|
|
|
|
для: pautina
(27.12.2011 в 16:13)
| | Запустил код как скрипт
выходит ошибка
Warning: mysql_query() [function.mysql-query]: Access denied for user ''@'localhost' (using password: NO) in M:\home\photoshop-portal\www\link_category.php on line 4
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in M:\home\photoshop-portal\www\link_category.php on line 4
Ошибка выполнения запроса - Access denied for user ''@'localhost' (using password: NO)
SELECT * FROM category1
Как её исправить? | |
|
|
|
|
|
|
|
для: pautina
(28.12.2011 в 06:04)
| | Вы не подключились к базе. Вам показали часть кода. отвечающую за выборку ссылок. Но это не значит, что к базе не требуется подключаться | |
|
|
|
|