|
|
|
|
|
для: deimand
(30.12.2011 в 14:34)
| | Всё работает спасибо Вам огромное. | |
|
|
|
|
|
|
|
для: pautina
(30.12.2011 в 14:14)
| | Вообще нужно разбираться как он там оказался...
Ну да ладно
<?php
// есть некая строка, которая хранится в переменной $test
// строка содержит следующий текст.
$test = 'Да всё в точности так как должно быть, правда я не учёл вот какой момент
В каждых ссылках нужно ещё удялять amp;
Он присутствует в конце и из-за него ссылка не активна,
http://www.photoshop-master.ru/lessons.php?rub=1&id=1689
Как удалить эти 4 символа со всех строк?';
// Чтобы заменить & на & можно воспользоваться функцией замены в строках str_replace()
// Синтаксис функции
//str_replace(Что заменяем, На что заменяем, Где заменяем);
// Для решения задачи можно поставить условие так:
$test = str_replace('&', '&', $test);
echo $test;
// вместо $test необходимо подставить то имя переменной, в которой требуется сделать замену
|
| |
|
|
|
|
|
|
|
для: deimand
(30.12.2011 в 13:43)
| | Да всё в точности так как должно быть, правда я не учёл вот какой момент
В каждых ссылках нужно ещё удялять amp;
Он присутствует в конце и из-за него ссылка не активна,
http://www.photoshop-master.ru/lessons.php?rub=1&id=1689
Как удалить эти 4 символа со всех строк? | |
|
|
|
|
|
|
|
для: pautina
(30.12.2011 в 13:32)
| | Замените
$newField_2 = mysql_escape_string($matches[1]);
|
на
$newField_2 = mysql_escape_string('http://www.photoshop-master.ru/' . $matches[1]);
|
Не забывайте, что именно в $matches находятся короткие сслылки, вырезанные из длинных функцией preg_match. Для этого она там и вызвана. Ничего лишнего в скрипте нет, там написано только то, что в точности выполняет ваше пожелание, не больше не меньше. | |
|
|
|
|
|
|
|
для: deimand
(30.12.2011 в 13:18)
| | Извиняюсь конечно, Смтрите у нас есть вот этот код
<?php
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal", $conn);
$query = "SELECT * FROM category1";
$cat = mysql_query($query);
if(!$cat) exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
if(mysql_num_rows($cat))
{
while($catagory = mysql_fetch_assoc($cat))
{
// Осуществляем преобразование URL
// искать URL нужно в поле, которое его хранит, а не в переменной от балды
preg_match('#href="(.*)"#siU', $catagory['Field 2'], $matches);
// найденное совпадение сохраняется в $matches, для этого оно в функцию и передается
// и брать его потом для запроса нужно именно оттуда
$newField_2 = mysql_escape_string($matches[1]);
// пробуйте
$query = "UPDATE category1
SET `Field 2` = '{$newField_2}'
WHERE ID = {$catagory['ID']}";
if(!mysql_query($query))
{
exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
}
echo 'Запрос выполнен успешно';
}
}
?>
|
Вы пишите
Нужно эту строку
$catagory['Field 2'] = mysql_escape_string($catagory['Field 2']);
|
заменить на
$catagory['Field 2'] = mysql_escape_string('http://www.photoshop-master.ru/' . $catagory['Field 2']);
|
Я не нашёл строку для замены | |
|
|
|
|
|
|
|
для: pautina
(30.12.2011 в 11:02)
| | Вы одно и то же по несколько раз спрашиваете. В этой теме есть все ответы на Ваши вопросы. Нет разницы какое поле обновлять, field 2 или field 5 в плане кода. Отличается только mysql запрос, после слова SET. Вы не можете изменить самостоятельно 2 на 5? Что касается добавить к ссылке адрес домена, то я показал как это делать и с каком месте скрипта в этом сообщении. | |
|
|
|
|
|
|
|
для: pautina
(30.12.2011 в 06:23)
| | Извините Вы не посмотрите этот участок кода
<?php
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal", $conn);
$query = "SELECT * FROM category1";
$cat = mysql_query($query);
if(!$cat) exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
if(mysql_num_rows($cat))
{
while($catagory = mysql_fetch_assoc($cat))
{
// Регулярное выражение делающее объединение строк www.photoshop-master.ru/ и содержимое поля Field 2
// здесь команда добавления записи в новый столбец field 5
$query = "INSERT INTO category1
VALUE = ??";
// $query = "UPDATE category1
// SET `Field 2` = '{$newField_2}'
// WHERE ID = {$catagory['ID']}";
if(!mysql_query($query))
{
exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
}
echo 'Фух, неужели';
}
}
?>
|
| |
|
|
|
|
|
|
|
для: deimand
(29.12.2011 в 21:48)
| | Что если мы будем делать всё в 2 этапа.
1) При помощи участка кода оставляем все адреса ссылок
2) На основе этого же участка кода, пишем другой php обработчик который добавит к ссылке http://www.photoshop-master.ru/
Для 1 пункта будем использовать код
<?php
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal", $conn);
$query = "SELECT * FROM category1";
$cat = mysql_query($query);
if(!$cat) exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
if(mysql_num_rows($cat))
{
while($catagory = mysql_fetch_assoc($cat))
{
// Осуществляем преобразование URL
// искать URL нужно в поле, которое его хранит, а не в переменной от балды
preg_match('#href="(.*)"#siU', $catagory['Field 2'], $matches);
// найденное совпадение сохраняется в $matches, для этого оно в функцию и передается
// и брать его потом для запроса нужно именно оттуда
$newField_2 = mysql_escape_string($matches[1]);
// пробуйте
$query = "UPDATE category1
SET `Field 2` = '{$newField_2}'
WHERE ID = {$catagory['ID']}";
if(!mysql_query($query))
{
exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
}
echo 'Фух, неужели';
}
}
?>
|
В результате в поле Field 2 будут содержатся
lessons.php?rub=1&id=1689
lessons.php?rub=1&id=1677
lessons.php?rub=1&id=1661
...
lessons.php?rub=1&id=1424
Какой php обработчик написать (за основу можно использовать 1 участок кода) чтоб прикрепить к ссылке http://www.photoshop-master.ru/ в итоге должно получится
http://www.photoshop-master.ru/lessons.php?rub=1&id=1689
http://www.photoshop-master.ru/lessons.php?rub=1&id=1677
...
http://www.photoshop-master.ru/lessons.php?rub=1&id=1424
И записать этот результат в новое поле Field5 таблицы category1 БД photoshop-portal
Какая команда в Mysql делает объёдинение строк? | |
|
|
|
|
|
|
|
для: pautina
(29.12.2011 в 18:50)
| | Где Вы видите в своем участке кода оператор echo, который выводит ссылку? Правильно, нигде. Потому что ее там нет. Потому что адрес сайта, который сохранен в константе, использовать нужно не здесь, а когда Вы будете выводить свои уроки и другие страницы сайта. В базе будут лежать относительные пути, а при выводе на страницу будете добавлять адрес сайта.
Это все делается по той причине, что если Вы переедете с одного домена на другой, вдруг, или смените директорию, то чтобы весь Ваш сайт остался рабочим, достаточно будет просто поменять значение константы. Или Вы снова будете обходить всю таблицу, чтобы поменять ссылки? Не думаю что это хороший вариант. | |
|
|
|
|
|
|
|
для: deimand
(29.12.2011 в 15:35)
| | При помощи константы что то не всё понятно, пробовал сделать простой заменой строки как вы писали, там что то тоже не всё ясно, какую строку заменять?
<?php
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal", $conn);
$query = "SELECT * FROM category1";
$cat = mysql_query($query);
if(!$cat) exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
if(mysql_num_rows($cat))
{
while($catagory = mysql_fetch_assoc($cat))
{
// Осуществляем преобразование URL
// искать URL нужно в поле, которое его хранит, а не в переменной от балды
$catagory['Field 2'] = mysql_escape_string('http://www.photoshop-master.ru/' . $catagory['Field 2']);
preg_match('#href="(.*)"#siU', $catagory['Field 2'], $matches);
// найденное совпадение сохраняется в $matches, для этого оно в функцию и передается
// и брать его потом для запроса нужно именно оттуда
$newField_2 = mysql_escape_string($matches[1]);
// пробуйте
$query = "UPDATE category1
SET `Field 2` = '{$newField_2}'
WHERE ID = {$catagory['ID']}";
if(!mysql_query($query))
{
exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
}
echo 'Фух, неужели';
}
}
?>
|
| |
|
|
|
|