Поэтому я пытаюсь отобразить изображения из базы данных для веб-сайта, который я создаю для друга. Он хочет иметь возможность загружать изображение и отображать его на первой странице.
У меня загружен образ всех работающих. Сохранение его в базе данных как BLOB.
Я начал работать над отображением изображений в отдельном файле. Я заработал на своем тестовом сайте, изображения показали, как он их хочет. Но затем я переместил код на фактический веб-сайт, понял, как это должно быть, и это не сработало.
Я закончил тем, что снова попробовал это на своем тестовом веб-сайте, и все получилось отлично.
Для некоторых он не работает на фактическом веб-сайте, но он отлично работает на моем тестовом сайте.
Фактический сайт захватывает больше информации, которую делает мой тестовый сайт.
Вот код, который я использовал на своем тестовом сайте.
image.php
$query = mysql_query("SELECT * FROM images LIMIT 1"); while($row = mysql_fetch_assoc($query)){ $image_id = $row['id']; echo "<img src=showimage.php?id=".$image_id.">"; }
Вот как я захватываю изображение из базы данных и отображаю его.
showimage.php
include 'inc/db.php'; $id = addslashes($_REQUEST['id']); $image = mysql_query("SELECT image FROM sites WHERE id = '$id'"); $image = mysql_fetch_assoc($image); $image = $image['image']; header("Content-type: image/png"); echo $image;
Использование этого кода на тестовом сайте прекрасно работает, там нет проблем.
Вот мой код для фактического сайта.
sites.php
$select = mysql_query("SELECT * FROM sites"); while($row = mysql_fetch_assoc($select)){ $image_id = $row['id']; echo ' <tr class="bottom"><td>'.$row['host'].'</td> <td>'.$row['currency'].''.$row['price'].' every '.$row['payment'].'</td> <td>'.$row['domain'].'</td> <td>'.$row['paid_currency'].''.$row['paid_domain'].'</td> <td>'.$row['features'].'</td> <td> <span title="Edit '.$row['id'].'"><a href="edit.php?id='.$row['id'].'"><img src="images/edit.png" alt="Edit"></a></span> <span title="Delete '.$row['id'].'"><a href="inc/delete.php?id='.$row['id'].'"><img src="images/delete.png" alt="Delete"></a></span> </td> <td><img src=showimage.php?id='.$image_id.'></td></tr> '; }
Это использование файла showimage.php для захвата изображения из базы данных, но не работает вообще.
Если вы настроились на использование базы данных, посмотрите на функцию imagecreatefrompng () , в зависимости от того, как img был помещен в БД.
Кроме того, вместо addlashes () попробуйте выполнить $id = (int)$_GET['id'];
затем проверяем, равен ли $id > 0
. Наконец, +1 для сохранения изображений в файловой системе, а не как BLOB.
[И добавьте здесь лекцию mysql_query-is-устаревшего использования-PDO-расширения]