2013-06-24 2 views
0

Я пытаюсь создать страницу, где люди могут загружать картинку для просмотра всем.отображает изображение из каталога, на который ссылается таблица mysql

Я пытаюсь сохранить изображения в каталоге и ссылаться на имя файла через таблицу MySQL.

Загрузка, которую мне удалось отсортировать, она хранит файл, в котором я хочу, и добавляет имя файла в таблицу.

Это просмотр изображения У меня проблемы. На странице просто отображается пустое место, где должен быть рисунок, но отображает остальную информацию из таблицы правильно, то есть кто ее загрузил и когда.

Вот мой код:

$myObject = new convertToAgo; 
//var for gallery output 
$returnstr = ""; 

$sql = mysql_query("SELECT * FROM pictures ORDER BY creation_date DESC"); 
while($row = mysql_fetch_array($sql)){ 
$username = $row["creator_name"]; 
$date = $row["creation_date"]; 
$file = $row["file_name"]; 
$convertedTime = ($myObject -> convert_datetime($date)); 
$whenAdded = ($myObject -> makeAgo($convertedTime)); 
$picture = "pictures/$file"; 

$returnstr .='<img src =\"$picture\" width="400px" height="400px" border="1px"  /> 
<div class="response_top_div">Added by:&nbsp; ' . $username . ' &nbsp; | &nbsp; ' .  $whenAdded . ' </div>       <br/><br/><br/>'; 

} 
+3

Проверьте созданный HTML-код. Является ли образы 'src' указывать на правильный каталог? Правильно ли это изображение? – andrewsi

+0

Вы имели в виду/рисунки/вместо этого? – TravisO

+0

Все ответы ниже должны решить проблему. Некоторые решают проблему более непосредственно, чем другие. Измените кавычки, чтобы удвоить строку HTML, или немного поиграйте с конкатенацией строк. Я лично предпочитаю держать переменные из своих строк, так как их легче читать. Но да, проблема была настолько очевидной для всех, что у вас есть 4 ответа. Жаль, что у меня было 4 ответа на некоторые из моих вопросов ... – shennan

ответ

0

Вы пытаетесь ссылаться на переменные в строках. Попробуйте следующее:

$myObject = new convertToAgo; 

$returnstr = ""; 

$sql = mysql_query("SELECT * FROM pictures ORDER BY creation_date DESC"); 

while($row = mysql_fetch_array($sql)){ 
    $username = $row["creator_name"]; 
    $date = $row["creation_date"]; 
    $file = $row["file_name"]; 
    $convertedTime = ($myObject -> convert_datetime($date)); 
    $whenAdded = ($myObject -> makeAgo($convertedTime)); 
    $picture = "pictures/" . $file; 

    $returnstr .= '<img src ="' . $picture . '" width="400px" height="400px" border="1px"/> 
<div class="response_top_div">Added by:&nbsp; ' . $username . ' &nbsp; | &nbsp; ' .  $whenAdded . ' </div>       <br/><br/><br/>'; 

} 
+0

Спасибо, shennan это сделало трюк, – dyer926

1

Ваш код должен выглядеть следующим образом

$picture = "pictures/".$file; 

$returnstr .='<img src ="'.$picture.'" 

или лучше

$returnstr .='<img src ="pictures/'.$file.'" 
+0

-1: это абсолютно НЕ НИЧЕГО. все, что вы сделали, немного изменило мебель. '' $ foo = "bar $ baz"; 'и' $ foo = "bar". $ baz' функционально идентичны в PHP. –

0

Если $returnstr переменная у вас есть точно, то вы фактически только добавление строки $picture в src. Вам необходимо контактировать с переменной:

$returnstr .='<img src ="'.$picture.'" width="400px" height="400px" border="1px"  />' ... 
+0

Вы также должны исправить $ picture var, иначе он также добавит строку –

+0

, хотя то, как он создал переменную '$ picture', был грязным, он должен работать, потому что он использует кавычки, а не одинарные кавычки. Я просто считаю, что подсветка синтаксиса здесь не достаточно умна. – kmfk

0

только double qoutes может принимать переменную php, поэтому измените начальные qoutes на двойные.

$returnstr = "<img src='$you_variable' rel='test_image' />"; 

Надеюсь, что это сработает.

Смежные вопросы