|
|
|
| В таблице надо вырезать часть пути ссылки $pattern выражение написал-работает.
Но правильно выводит на экран строки БЫЛО , СТАЛО , a ЗАПИСАЛО ВЫВОДИТ Resource id #6
(в базу записывает arrey.)
<?php include ("bd.php");
$pattern= '/src=\"http[:]\/\/[a-z0-9]{0,20}[.][a-z]{0,20}[.]ru\/[a-z0-9]{0,6}\/[a-z0-9]{0,6}\//';
$result=mysql_query("SELECT story from post ");
while ($row=mysql_fetch_array ($result))
{
echo "<br>БЫЛО:<hr>",$row[story] ;
$text[story]=preg_replace($pattern ,"src=\"http://\"" ,$row[story] );
echo "СТАЛО:<br>",$text[story];
mysql_query("UPDATE post SET story='$text' ");
$result1[story]=mysql_query("SELECT full_story from post ");
echo "ЗАПИСАЛО:<br>",$result1[story];
}
?>
|
ps регулярное выражение правильное 100% . | |
|
|
|
|
|
|
|
для: vorobey
(03.05.2009 в 21:34)
| | В базу записывает ровно то что просите .
echo $text;
mysql_query("UPDATE post SET story='$text' "); | |
|
|
|
|
|
|
|
для: Trianon
(03.05.2009 в 21:36)
| | это я проверял и скопировал неглядя
если пишу как надо
mysql_query("UPDATE post SET story='$text[story] ' ")
то в базу записывается одна единственная запись во все поля и берется этот текст гдето с конца базы | |
|
|
|
|
|
|
|
для: vorobey
(03.05.2009 в 21:43)
| | не с конца.
Берется каждая строка, переделывается, и записывается во все строки.
Понятное дело, что в конце концов в базе остается одна, та которая обрабатывалась последней.
Всё потому, что в операторе update Вы не указываете, в какую строку писать поле.
Вот он и пишет во все без ограничений.
Чтобы указать строку, в которую помещать поле, нужно первым оператором SELECT не только поле вытащить, но и ключ строки. По возможности - первичный. | |
|
|
|
|
|
|
|
для: Trianon
(03.05.2009 в 21:51)
| | Указал явно id хотя бы один.
<?php include ("bd.php");
$pattern= "/src=\"http[:]\/\/[a-z0-9]{0,20}[.][a-z]{0,20}[.]ru\/[a-z0-9]{0,6}\/[a-z0-9]{0,6}\//";
$result=mysql_query("SELECT story from post where id='1076' ");
while ($row=mysql_fetch_array ($result))
{
echo "<br>БЫЛО:<br><hr>",$row[story] ;
$text=preg_replace($pattern ,"src=\"http://\"" ,$row[story] );
echo "<br>СТАЛО:<br><hr>",$text;
mysql_query("UPDATE post SET story='$text' where id='1076'");
}
?>
|
ничего вообще в базу не заносит , а на экран все ок
Может как то массив сделать? что ему еще надо? | |
|
|
|
|
|
|
|
для: vorobey
(04.05.2009 в 09:57)
| | вообще-то $text нужно обработать mysql_escape_string() перед помещением в запрос.
А после запроса следует проконтролиоровать его результат. | |
|
|
|
|
|
|
|
для: Trianon
(04.05.2009 в 10:43)
| | Спосибо большое. Забыл про
mysql_escape_string()
записал так:
mysql_query("UPDATE post SET story = '".mysql_escape_string($text)."' WHERE ID='$i'");
|
все работает. | |
|
|
|