Itu karena browser Anda tidak menyadari bahwa data yang Anda kirim kembali adalah gambar. Ketika server web Anda merespons permintaan, itu menentukan jenis kontennya (karena itu header Tipe-Konten), dan halaman Anda ditentukan sebagai teks. Inilah sebabnya mengapa tag gambar digunakan:tag memberi Anda kesempatan untuk mengatakan "sematkan sumber daya lain ini di lokasi ini". Apa yang dilakukan kode Anda adalah membuang data biner gambar sebagai teks ke layar - bukan yang Anda inginkan.
Yang perlu Anda lakukan adalah membuat halaman PHP lain, seperti getImage.php, yang menerima parameter $_GET (mis., id baris). Halaman itu kemudian akan menanyakan database dan echo
data gambar, menentukan header Content-Type.
Berikut adalah beberapa bukti kode konsep yang saya tulis tanpa pengujian dan yang tidak menangani injeksi SQL, atau sejumlah masalah potensial lainnya.
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'];
}
Sekarang, saat Anda membuat HTML di file yang ada, Anda akan melakukan sesuatu seperti ini:
echo '<td class="sitename2"><img src="./getImage.php?q='.$row["id"].'"/></td>';
Menyesuaikan nama kolom SQL Anda.
Selamat.