Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: о слэшах в mysql
 
 автор: spiritos   (19.10.2006 в 08:56)   письмо автору
 
 

у меня в таблице authors есть поле photo, текстовое, в котором хранятся пути к фотографиям. столкнулась с проблемой. пытаюсь изменить значение этого поля:
update authors set photo=".\photo\my.jpg"
where id_author=1;
Пишет Query OK.
Далее, для начала, в пхп коде просто хочу увидеть все фотки на страничке из базы:
<?php .............
$result = mysql_query("select * from authors");
while ($row = mysql_fetch_object($result)) {
if ($row->photo!="") {?>
<img src=<?php $row->photo ?>/>
<?php }
else {echo ("Фотография отсутствует");}
} ?>
..
и имею в результате красный крестик и несколько надписей "фото отсутствует", где значение поля не задано.
если в src для img напрямую прописываю ".\photo\my.jpg", то всё работает.
решила посмотреть что же записалось в бд

select photo from authors;
а там, в поле photo стоит ".photomy.jpg"
То есть куда-то делись слэши "\"!!!
Причём если задаю поле значение "./photo/my.jpg", то оно не коверкается, символы не исчезают,
но и картинка по найденному пути не находится. я работаю в windows.
Чего мне делать то :(

   
 
 автор: Trianon   (19.10.2006 в 09:31)   письмо автору
 
   для: spiritos   (19.10.2006 в 08:56)
 

<?
//    Обратные слэши нужно экранировать. Причем, как в PHP :
$jpg ".\\photo\\my.jpg";

//    так и в MySQL:
$str "'".mysql_escape_string($jpg). "'";

//     и только после этого подставлять в запрос:
$sql "update authors set photo=$str where id_author=1";

mysql_query($sql);
?>


В этом примере
в $jpg будет строка
.\photo\my.jpg

в $str будет строка
'.\\photo\\my.jpg'

в $sql будет строка
update authors set photo='.\\photo\\my.jpg' where id_author=1

Последняя является корректным sql-запросом, выполняющим то, что Вам нужно.

   
 
 автор: spiritos   (19.10.2006 в 11:38)   письмо автору
 
   для: Trianon   (19.10.2006 в 09:31)
 

Спасибо огромное!!!!!!! работает :))

   
 
 автор: spiritos   (19.10.2006 в 13:23)   письмо автору
 
   для: spiritos   (19.10.2006 в 11:38)
 

ну то есть я пока проверила только в mysql и там действительно появилась в таблице нужная мне строка..
а вот при вставке php в html не могу добиться чтобы отобразилась картинка, не находит путь.
где ошибка в строчке
<img src=<?php $row->photo ?>/>
при том, что echo ($row->photo) выводит на экран верный путь .\foto\my.jpg


Более того, <img src=<?php ".\foto\my.jpg" ?>/> или <img src=<?php ".\\foto\\my.jpg" ?>/> тоже не работает(...

   
 
 автор: Trianon   (19.10.2006 в 13:44)   письмо автору
 
   для: spiritos   (19.10.2006 в 13:23)
 


<img src="<?php echo $row->photo?>"/>

или

<img src="<?= $row->photo ?>"/>

   
 
 автор: spiritos   (19.10.2006 в 13:56)   письмо автору
 
   для: Trianon   (19.10.2006 в 13:44)
 

оо!! теперь я окончательно щАслива!!)))

   
 
 автор: Trianon   (19.10.2006 в 14:05)   письмо автору
 
   для: spiritos   (19.10.2006 в 13:56)
 

Это врядли.
Вообще-то пути с обратными слэшами в интернет-ссылках не приняты, и запросто могут не работать.

   
 
 автор: spiritos   (19.10.2006 в 14:20)   письмо автору
 
   для: Trianon   (19.10.2006 в 14:05)
 

так получается всё дело не в слешах, а в том что неправильна была строка img..
ну зато разобралась)
теперь разумеется работает и в случае если в бд занести пути с прямыми слешами. оставлю прямые.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования