Это потому, что ваш браузер не понимает, что отправляемые вами данные - это изображение.Когда ваш веб-сервер отвечает на запрос, он указывает тип содержимого (следовательно, заголовок Content-Type), а ваша страница указывается в виде текста.Вот почему используются теги изображений: они дают вам возможность сказать «встроить этот другой ресурс в это место».Ваш код делает вывод двоичных данных изображения в виде текста на экран - не то, что вам нужно.
Вам нужно создать еще одну страницу PHP, например, getImage.php, которая принимает $Параметр _GET (т. Е. Идентификатор строки).Затем эта страница запросит базу данных и echo
данные изображения, указав заголовок Content-Type.
Вот некоторые доказательства концептуального кода, который я написал без тестирования и который не обрабатывает внедрение SQL, илимножество других потенциальных проблем.
header('Content-Type: image/png'); //change to the proper content type for your type of image
$imageID = mysql_real_escape_string($_GET['q']);
$result = mysql_query(sprintf('SELECT file_data FROM images2 WHERE id="%s" AND file_data IS NOT NULL LIMIT 1', $_GET['q']));
if(mysql_num_rows($result) !== 1)
{
//a row wasn't found, so 404
header('HTTP/1.0 404 File Not Found');
}
else
{
$row = mysql_fetch_object($result);
echo $row['file_data'];
}
Теперь, когда вы создаете свой HTML в существующем файле, вы должны сделать что-то вроде этого:
echo '<td class="sitename2"><img src="./getImage.php?q='.$row["id"].'"/></td>';
Настройка имен столбцов SQLсоответственно.
Приветствия.