|
|
|
| Здравствуйте Уважаемое сообщество.
Мне нужно сделать замену в html коде, сам html код содержится в ячейке таблицы (БД - bd_photoshop-portal, таблица - category_effects, поле - Field 4)
Для этого использую скрипт
<?php
// header("Content-Type: text/html; charset=UTF-8");
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal", $conn);
$query = "SELECT * FROM category_effects";
$cat = mysql_query($query);
if(!$cat) exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
if(mysql_num_rows($cat))
{
while($catagory = mysql_fetch_assoc($cat)) ;
{
$newField_4 = preg_replace('#(<img\s[^>]*?\bsrc\s*=\s*[\'"]?)lessons/#i', '$1images/lessons/', $catagory['Field 4']); // Замена адреса изображения в строке
$newField_4 = str_replace('<LI><P class=index_lessons>', '<p>', $str);
$newField_4 = str_replace('<IMG', '<img class="alignleft" style="float: left; margin: 0px 10px 10px 0px"', $catagory['Field 4']);
$newField_4 = str_replace('height=42', 'height="42"', $catagory['Field 4']);
$newField_4 = str_replace('width=42', 'width="42"', $catagory['Field 4']);
$pattern = "#<a.*?/span.*?<p>#si";
$newField_4 = preg_replace($pattern,"",$catagory['Field 4']);
$findme ='<P class=Created>Создан:';
$pos = strpos($catagory['Field 4'], $findme); // определяем позицию $findme в переменной $str
$newField_4 = substr($catagory['Field 4'], 0, $pos); // создаём новую строку из str от 0 сивола до символа $pos
$query = "UPDATE category_effects
SET `Field 4` = '{$newField_4}'
WHERE ID = {$catagory['ID']}";
if(!mysql_query($query))
{
exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
}
echo 'Запрос выполнен успешно';
}
}
?>
|
Выходит ошибка
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
UPDATE category_effects SET `Field 4` = '' WHERE ID = | |
|
|
|
|
|
|
|
для: pautina
(07.02.2012 в 06:38)
| | У вас пустое значение $catagory['ID'], нужно, чтобы оно не было пустым. | |
|
|
|
|
 20.3 Кб |
|
|
для: cheops
(07.02.2012 в 11:07)
| | Как понять пустое значение.
Все поля для ID заполнены и не пустые. sql файл создающий таблицу я прикрепил посмотрите. | |
|
|
|
|
|
|
|
для: pautina
(07.02.2012 в 12:54)
| | Видите в конце запроса ничего нет?
UPDATE category_effects SET `Field 4` = '' WHERE ID =
| Значит к моменту, когда он формируется, в $catagory['ID'] тоже ничего нет. | |
|
|
|
|
|
|
|
для: pautina
(07.02.2012 в 06:38)
| | а что Вы в этом фрагменте делаете?
$newField_4 = preg_replace('#(<img\s[^>]*?\bsrc\s*=\s*[\'"]?)lessons/#i', '$1images/lessons/', $catagory['Field 4']); // Замена адреса изображения в строке
$newField_4 = str_replace('<LI><P class=index_lessons>', '<p>', $str);
$newField_4 = str_replace('<IMG', '<img class="alignleft" style="float: left; margin: 0px 10px 10px 0px"', $catagory['Field 4']);
$newField_4 = str_replace('height=42', 'height="42"', $catagory['Field 4']);
$newField_4 = str_replace('width=42', 'width="42"', $catagory['Field 4']);
$pattern = "#<a.*?/span.*?<p>#si";
$newField_4 = preg_replace($pattern,"",$catagory['Field 4']);
$findme ='<P class=Created>Создан:';
$pos = strpos($catagory['Field 4'], $findme); // определяем позицию $findme в переменной $str
$newField_4 = substr($catagory['Field 4'], 0, $pos); // создаём новую строку из str от 0 сивола до символа $pos
|
он равнозначен :
$findme ='<P class=Created>Создан:';
$pos = strpos($catagory['Field 4'], $findme); // определяем позицию $findme в переменной $str
$newField_4 = substr($catagory['Field 4'], 0, $pos); // создаём новую строку из str от 0 сивола до символа $pos
|
| |
|
|
|
|
|
|
|
для: Lotanaen
(07.02.2012 в 13:49)
| | Данный скрипт должен нужным образом изменять и урезать html код в ячейке таблицы.
Скрипт для таблицы делал по аналогии скрипта для строки (как изменяется код можете просмотреть запустив скрипт),
его код такой
<?php
header("Content-Type: text/html; charset=UTF-8");
$str = '<LI><P class=index_lessons><IMG title="миниатюра к уроку Создай светящегося супергероя в Фотошоп" height=42 alt="миниатюра к уроку Создай светящегося супергероя в Фотошоп" src="lessons/les1661/mini.gif" width=42><A href="lessons.php?rub=1&id=1661">Создай светящегося супергероя в Фотошоп</A><SPAN>Автор/Переводчик: <A class=small href="/lessons.php?aut=78">Рыбка</A></SPAN> <BR><SPAN class=Hard>Сложность: <A class=small href="/lessons.php?dif=3">Усложненная</A></SPAN></P>
<P>В этом уроке вы узнаете, как обычную иллюстрацию превратить в ретро-футуристическую художественную работу, а так же как сделать световой эффект быстрого движения.</P>
<P class=Created>Создан: 14.10.2011 | Просмотров: 47022 | Выполнено работ: 37</P>
';
/* preg_match_all('#src="([^"]+)"#i', $str, $matches); // показывает ссылку для изображения
$matches[1] = str_replace('lessons', 'http://www.photoshop-master.ru/lessons', $matches[1]); // к адресу ссылки прибавляем http://www.photoshop-master.ru/ */
$str = preg_replace('#(<img\s[^>]*?\bsrc\s*=\s*[\'"]?)lessons/#i', '$1images/lessons/', $str); // Замена адреса изображения в строке
$str = str_replace('<LI><P class=index_lessons>', '<p>', $str);
$str = str_replace('<IMG', '<img class="alignleft" style="float: left; margin: 0px 10px 10px 0px"', $str);
$str = str_replace('height=42', 'height="42"', $str);
$str = str_replace('width=42', 'width="42"', $str);
$pattern = "#<a.*?/span.*?<p>#si";
$str = preg_replace($pattern,"",$str);
$findme ='<P class=Created>Создан:';
$pos = strpos($str, $findme); // определяем позицию $findme в переменной $str
$newstr = substr($str, 0, $pos); // создаём новую строку из str от 0 сивола до символа $pos
// echo '<pre>';
print_r($newstr);
?>
|
Для строки всё работало, а вот для обработки html кода в ячейке таблицы
<?php
// header("Content-Type: text/html; charset=UTF-8");
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal", $conn);
$query = "SELECT * FROM category_effects";
$cat = mysql_query($query);
if(!$cat) exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
if(mysql_num_rows($cat))
{
while($catagory = mysql_fetch_assoc($cat)) ;
{
$newField_4 = preg_replace('#(<img\s[^>]*?\bsrc\s*=\s*[\'"]?)lessons/#i', '$1images/lessons/', $catagory['Field 4']); // Замена адреса изображения в строке
$newField_4 = str_replace('<LI><P class=index_lessons>', '<p>', $str);
$newField_4 = str_replace('<IMG', '<img class="alignleft" style="float: left; margin: 0px 10px 10px 0px"', $catagory['Field 4']);
$newField_4 = str_replace('height=42', 'height="42"', $catagory['Field 4']);
$newField_4 = str_replace('width=42', 'width="42"', $catagory['Field 4']);
$pattern = "#<a.*?/span.*?<p>#si";
$newField_4 = preg_replace($pattern,"",$catagory['Field 4']);
$findme ='<P class=Created>Создан:';
$pos = strpos($catagory['Field 4'], $findme); // определяем позицию $findme в переменной $str
$newField_4 = substr($catagory['Field 4'], 0, $pos); // создаём новую строку из str от 0 сивола до символа $pos
$query = "UPDATE category_effects
SET `Field 4` = '{$newField_4}'
WHERE ID = {$catagory['ID']}";
if(!mysql_query($query))
{
exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
}
echo 'Запрос выполнен успешно';
}
}
?>
|
Возникают вопросы, в чём ошибка так и не понятно. | |
|
|
|
|
|
|
|
для: pautina
(07.02.2012 в 14:03)
| | уже подобную ошибку помнится Вам объясняли - Вы каждый раз работает с $catagory['Field 4'], а нужно начиная со второго работать с $newField_4, так как в вашем коде Вы каждый раз присваиваете новое значение, сбрасывая полностью замены в тексте, которые до этого проделываете. | |
|
|
|
|
|
|
|
для: Lotanaen
(07.02.2012 в 14:23)
| | Ни посмотрите скрипт
<?php
// header("Content-Type: text/html; charset=UTF-8");
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal", $conn);
$query = "SELECT * FROM category_effects";
$cat = mysql_query($query);
if(!$cat) exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
if(mysql_num_rows($cat))
{
while($catagory = mysql_fetch_assoc($cat)) ;
{
$newField_4 = preg_replace('#(<img\s[^>]*?\bsrc\s*=\s*[\'"]?)lessons/#i', '$1images/lessons/', $catagory['Field 4']); // Замена адреса изображения в строке
$newField_4 = str_replace('<LI><P class=index_lessons>', '<p>', $catagory['$newField_4']);
$newField_4 = str_replace('<IMG', '<img class="alignleft" style="float: left; margin: 0px 10px 10px 0px"', $catagory['$newField_4']);
$newField_4 = str_replace('height=42', 'height="42"', $catagory['$newField_4']);
$newField_4 = str_replace('width=42', 'width="42"', $catagory['$newField_4']);
$pattern = "#<a.*?/span.*?<p>#si";
$newField_4 = preg_replace($pattern,"",$catagory['$newField_4']);
$findme ='<P class=Created>Создан:';
$pos = strpos($catagory['$newField_4'], $findme); // определяем позицию $findme в переменной $str
$newField_4 = substr($catagory['$newField_4'], 0, $pos); // создаём новую строку из str от 0 сивола до символа $pos
$query = "UPDATE category_effects
SET `Field 4` = '{$newField_4}'
WHERE ID = {$catagory['ID']}";
if(!mysql_query($query))
{
exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
}
echo 'Запрос выполнен успешно';
}
}
?>
|
Выходит это сообщение
Ошибка выполнения запроса - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
UPDATE category_effects SET `Field 4` = '' WHERE ID = | |
|
|
|
|
|
|
|
для: pautina
(07.02.2012 в 15:06)
| |
<?php
// header("Content-Type: text/html; charset=UTF-8");
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal", $conn);
$query = "SELECT * FROM category_effects";
$cat = mysql_query($query);
if(!$cat) exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
if(mysql_num_rows($cat))
{
while($catagory = mysql_fetch_assoc($cat)) ;
{
$newField_4 = preg_replace('#(<img\s[^>]*?\bsrc\s*=\s*[\'"]?)lessons/#i', '$1images/lessons/', $catagory['Field 4']); // Замена адреса изображения в строке
$newField_4 = str_replace('<LI><P class=index_lessons>', '<p>', $newField_4);
$newField_4 = str_replace('<IMG', '<img class="alignleft" style="float: left; margin: 0px 10px 10px 0px"', $newField_4);
$newField_4 = str_replace('height=42', 'height="42"', $newField_4);
$newField_4 = str_replace('width=42', 'width="42"', $newField_4);
$pattern = "#<a.*?/span.*?<p>#si";
$newField_4 = preg_replace($pattern,"",$newField_4);
$findme ='<P class=Created>Создан:';
$pos = strpos($newField_4, $findme); // определяем позицию $findme в переменной $str
$newField_4 = substr($newField_4, 0, $pos); // создаём новую строку из str от 0 сивола до символа $pos
$query2 = "UPDATE category_effects
SET `Field 4` = '{$newField_4}'
WHERE ID = {$catagory['ID']}";
if(!mysql_query($query2))
{
exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query2);
}
echo 'Запрос выполнен успешно';
}
}
?>
|
| |
|
|
|
|
 20.3 Кб |
|
|
для: Lotanaen
(07.02.2012 в 15:20)
| | Использовал указанный вами код.
при выполнении вышло сообщение
Ошибка выполнения запроса - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
UPDATE category_effects SET `Field 4` = '' WHERE ID =
Ни могли бы вы проверить указанный в предидущем сообшении скрипт.
Файл формирующий таблицу sql category_effects я прикрепил. | |
|
|
|
|
|
|
|
для: pautina
(07.02.2012 в 17:55)
| | ну так попробуйте:
$query2 = "UPDATE category_effects
SET `Field 4` = '$newField_4'
WHERE ID = '".$catagory['ID']."';";
|
| |
|
|
|
|
|
|
|
для: Lotanaen
(07.02.2012 в 18:04)
| | Вы знаете выходит сообщение что запрос выполнился.
Но содержимое ячеек таблицы не изменяется. | |
|
|
|
|
|
|
|
для: pautina
(07.02.2012 в 18:14)
| | Почему не меняется содержимое поля Field 4
<?php
// header("Content-Type: text/html; charset=UTF-8");
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal", $conn);
$query = "SELECT * FROM category_effects";
$cat = mysql_query($query);
if(!$cat) exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
if(mysql_num_rows($cat))
{
while($catagory = mysql_fetch_assoc($cat)) ;
{
$newField_4 = preg_replace('#(<img\s[^>]*?\bsrc\s*=\s*[\'"]?)lessons/#i', '$1images/lessons/', $catagory['Field 4']); // Замена адреса изображения в строке
$newField_4 = str_replace('<LI><P class=index_lessons>', '<p>', $catagory['$newField_4']);
$newField_4 = str_replace('<IMG', '<img class="alignleft" style="float: left; margin: 0px 10px 10px 0px"', $catagory['$newField_4']);
$newField_4 = str_replace('height=42', 'height="42"', $catagory['$newField_4']);
$newField_4 = str_replace('width=42', 'width="42"', $catagory['$newField_4']);
$pattern = "#<a.*?/span.*?<p>#si";
$newField_4 = preg_replace($pattern,"",$catagory['$newField_4']);
$newField_4 = str_replace('</P>', '<!--more--></p>', $newField_4);
$findme ='<P class=Created>Создан:';
$pos = strpos($catagory['$newField_4'], $findme); // определяем позицию $findme в переменной $str
$newField_4 = substr($catagory['$newField_4'], 0, $pos); // создаём новую строку из str от 0 сивола до символа $pos
$query2 = "UPDATE category_effects
SET `Field 4` = '$newField_4'
WHERE ID = '".$catagory['ID']."';";
if(!mysql_query($query))
{
exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
}
echo 'Запрос выполнен успешно';
}
}
?>
|
Где может быть ошибка? | |
|
|
|
|
|
|
|
для: pautina
(08.02.2012 в 10:00)
| | да... опять сорок пять... Вам уже писали и не раз, а Вы по новой старый код... | |
|
|
|
|
|
|
|
для: Lotanaen
(08.02.2012 в 10:15)
| | Почему старый вы ведь этот участок кода для $query2 указали?
$query2 = "UPDATE category_effects
SET `Field 4` = '$newField_4'
WHERE ID = '".$catagory['ID']."';";
|
и строки
$query = "SELECT * FROM category_effects";
и
$query2 = "UPDATE category_effects
SET `Field 4` = '$newField_4'
WHERE ID = '".$catagory['ID']."';";
должны быть разные или нет? | |
|
|
|
|
|
|
|
для: pautina
(08.02.2012 в 11:03)
| | Если честно так и не понятно почему содержимое ячейки не меняется.
Ни посоветуете что либо? | |
|
|
|
|
|
|
|
для: pautina
(08.02.2012 в 16:55)
| | Ну попробуйте сами найти 10 отличий в коде, который я привел Вам на несколько постов выше и вашим последним релизом... | |
|
|
|
|
|
|
|
для: Lotanaen
(09.02.2012 в 10:35)
| | Это ваш приведённый код
<?php
// header("Content-Type: text/html; charset=UTF-8");
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal", $conn);
$query = "SELECT * FROM category_effects";
$cat = mysql_query($query);
if(!$cat) exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
if(mysql_num_rows($cat))
{
while($catagory = mysql_fetch_assoc($cat)) ;
{
$newField_4 = preg_replace('#(<img\s[^>]*?\bsrc\s*=\s*[\'"]?)lessons/#i', '$1images/lessons/', $catagory['Field 4']); // Замена адреса изображения в строке
$newField_4 = str_replace('<LI><P class=index_lessons>', '<p>', $newField_4);
$newField_4 = str_replace('<IMG', '<img class="alignleft" style="float: left; margin: 0px 10px 10px 0px"', $newField_4);
$newField_4 = str_replace('height=42', 'height="42"', $newField_4);
$newField_4 = str_replace('width=42', 'width="42"', $newField_4);
$pattern = "#<a.*?/span.*?<p>#si";
$newField_4 = preg_replace($pattern,"",$newField_4);
$findme ='<P class=Created>Создан:';
$pos = strpos($newField_4, $findme); // определяем позицию $findme в переменной $str
$newField_4 = substr($newField_4, 0, $pos); // создаём новую строку из str от 0 сивола до символа $pos
$query2 = "UPDATE category_effects
SET `Field 4` = '$newField_4'
WHERE ID = '".$catagory['ID']."';";
if(!mysql_query($query2))
{
exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query2);
}
echo 'Запрос выполнен успешно';
}
}
?>
|
Обновления в поле Field 4 не происходит, где ошибка непонятно? | |
|
|
|
|
|
|
|
для: pautina
(09.02.2012 в 14:45)
| | С заменами разбирайтесь. У Вас, если <P class=Created>Создан: нет в записи, то будет возвращать нулевую строку | |
|
|
|
|
|
|
|
для: Lotanaen
(09.02.2012 в 16:41)
| | Обновление полей нет
закментарил все замены кроме 1, все рабно обновление не идёт
<?php
// header("Content-Type: text/html; charset=UTF-8");
$conn = mysql_connect ("localhost", "root", "")
or die (" !");
mysql_select_db("bd_photoshop-portal", $conn);
$query = "SELECT * FROM category_effects";
$cat = mysql_query($query);
if(!$cat) exit(" - ".mysql_error()."<br />".$query);
if(mysql_num_rows($cat))
{
while($catagory = mysql_fetch_assoc($cat)) ;
{
$newField_4 = preg_replace('#(<img\s[^>]*?\bsrc\s*=\s*[\'"]?)lessons/#i', '$1images/lessons/', $catagory['Field 4']); //
//$newField_4 = str_replace('<LI><P class=index_lessons>', '<p>', $catagory['$newField_4']);
//$newField_4 = str_replace('<IMG', '<img class="alignleft" style="float: left; margin: 0px 10px 10px 0px"', $catagory['$newField_4']);
//$newField_4 = str_replace('height=42', 'height="42"', $catagory['$newField_4']);
//$newField_4 = str_replace('width=42', 'width="42"', $catagory['$newField_4']);
//$pattern = "#<a.*?/span.*?<p>#si";
//$newField_4 = preg_replace($pattern,"",$catagory['$newField_4']);
//$newField_4 = str_replace('</P>', '<!--more--></p>', $newField_4);
//$findme ='<P class=Created>';
//$pos = strpos($catagory['$newField_4'], $findme); // $findme $str
//$newField_4 = substr($catagory['$newField_4'], 0, $pos); // str 0 $pos
$query2 = "UPDATE category_effects
SET `Field 4` = '$newField_4'
WHERE ID = '".$catagory['ID']."';";
if(!mysql_query($query))
{
exit(" - ".mysql_error()."<br />".$query);
}
echo ' ';
}
}
?>
|
| |
|
|
|
|
|
|
|
для: pautina
(09.02.2012 в 17:42)
| | Извиняюсь, нашёл наконец то ошибку.
Спасибо за поддержку. | |
|
|
|
|