как отображать изображения из базы данных в php?

я пишу следующий код для отображения изображений из базы данных

<?php mysql_connect("localhost","root",""); mysql_select_db("test"); $qry = "select id from image"; $res = mysql_query($qry) or die(mysql_error()); while($row = mysql_fetch_array($res)) { echo "<img src=image.php?id='$row[0]'>"; } ?> 

image.php

 <?php $query = mysql_query("SELECT img FROM images WHERE id = ".$_GET['id']); $row = mysql_fetch_array($query); if($type=="pjpeg") $type="jpeg"; header("Content-type:$type"); echo $row['img']; ?> 

но это не сработает. он отображает пустой значок изображения.

Вы также можете использовать кодировку base64 для создания изображения. подобно

 <img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAWgBaAAD/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAAB..." /> 

UPDATE, пример кодировки base64

Вы можете сделать это легко:

 <?php $imageId = intval($_GET["id"]); $query = mysql_query("SELECT img FROM images WHERE id = ". $imageId); $row = mysql_fetch_array($query); $mime = null; // place $type init. here if ($type=="pjpeg") // <<< where do you get $type btw? $mime = "image/jpeg"; $b64Src = "data:".$mime.";base64," . base64_encode($row["img"]); echo '<img src="'.$b64Src.'" alt="" />'; ?> 

jpeg не является допустимым типом содержимого, он должен быть image/jpeg

Как и выше +, обязательно передайте параметр replace = true функции заголовка.

header( 'Content-Type: image/jpeg', true );