Как получить изображения из базы данных MySQL и отобразить их в теге html
Я создал базу данных MySQL с таблицей, использующей phpmyadmin. Я создал эту таблицу со столбцом BLOB для хранения файла jpeg.
У меня есть проблемы с переменной php $result
здесь.
Мой код до сих пор: (catalog.php):
<body>
<?php
$link = mysql_connect("localhost", "root", "");
mysql_select_db("dvddb");
$sql = "SELECT dvdimage FROM dvd WHERE id=1";
$result = mysql_query("$sql");
mysql_close($link);
?>
<img src="" width="175" height="200" />
</body>
Как я могу получить переменную $result из PHP в HTML, чтобы я мог отображать ее в теге <img>
?
Ответы
Ответ 1
Вы не можете. Вам нужно создать еще один php script, чтобы вернуть данные изображения, например. getImage.php. Измените catalog.php на:
<body>
<img src="getImage.php?id=1" width="175" height="200" />
</body>
Тогда getImage.php
<?php
$id = $_GET['id'];
// do some validation here to ensure id is safe
$link = mysql_connect("localhost", "root", "");
mysql_select_db("dvddb");
$sql = "SELECT dvdimage FROM dvd WHERE id=$id";
$result = mysql_query("$sql");
$row = mysql_fetch_assoc($result);
mysql_close($link);
header("Content-type: image/jpeg");
echo $row['dvdimage'];
?>
Ответ 2
Технически вы можете также помещать данные изображения в тег img, используя URI данных.
<img src="data:image/jpeg;base64,<?php echo base64_encode( $image_data ); ?>" />
Есть некоторые особые обстоятельства, при которых это может быть даже полезно, хотя в большинстве случаев вам лучше обслуживать изображение с помощью отдельного script такого как daiscog.
Ответ 3
Вам необходимо получить и передать информацию в нужное вам.
while($row = mysql_fetch_array($result)) {
echo "img src='",$row['filename'],"' width='175' height='200' />";
}
Ответ 4
Сначала вам нужно получить результирующую строку из набора результатов запроса. Для этого вы можете использовать mysql_fetch_row
. Теперь, когда у вас есть выбранная строка, вы можете получить доступ к полученному значению и вывести его в src.
Например:
$sql = "SELECT dvdimage FROM dvd WHERE id=1";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
?>
<img src="<?=$row[0]?>" width="175" height="200" />
<?
Ответ 5
добавить $row = mysql_fetch_object($result);
после вашего mysql_query();
ваш html <img src="<?php echo $row->dvdimage; ?>" width="175" height="200" />