it-swarm-id.com

Cara mengambil gambar dari database MySQL dan menampilkannya dalam tag html

Saya membuat database MySQL dengan tabel menggunakan phpmyadmin. Saya membuat tabel ini dengan kolom BLOB untuk menampung file jpeg.

Saya memiliki masalah berkaitan dengan variabel php $result di sini.

Kode saya sejauh ini: (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>

Bagaimana saya bisa mendapatkan variabel $ hasil dari PHP ke dalam HTML sehingga saya bisa menampilkannya di tag <img>?

27
exxcellent

Kamu tidak bisa Anda perlu membuat skrip php lain untuk mengembalikan data gambar, mis. getImage.php. Ubah catalog.php menjadi:

<body>
<img src="getImage.php?id=1" width="175" height="200" />
</body>

Maka getImage.php adalah

<?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'];
?>
38
megaflop

Secara teknis, Anda bisa juga memasukkan data gambar dalam tag img, menggunakan data URI .

<img src="data:image/jpeg;base64,<?php echo base64_encode( $image_data ); ?>" />

Ada beberapa keadaan khusus di mana ini bahkan bisa berguna, meskipun dalam kebanyakan kasus Anda lebih baik menyajikan gambar melalui skrip terpisah seperti saran daiscog .

25
Ilmari Karonen

tambahkan $row = mysql_fetch_object($result); setelah mysql_query Anda (); 

html <img src="<?php echo $row->dvdimage; ?>" width="175" height="200" /> Anda

1
Punit

Pertama, Anda perlu mengambil baris yang dihasilkan dari resultset dari kueri. Untuk itu Anda bisa menggunakan mysql_fetch_row . Sekarang setelah Anda memiliki baris yang diambil, Anda dapat mengakses nilai yang diambil dan menggema ke src.

Sebagai contoh:

$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" />
<?
1
Marcus

Saya telah menambahkan garis miring sebelum memasukkan ke dalam basis data sehingga pada saat mengambil saya menghapus garis miring lagi stripslashes() dan itu berfungsi untuk saya. Saya membagikan kode yang berfungsi untuk saya.

Bagaimana saya dimasukkan ke mysql db (tipe gumpalan)

$db = mysqli_connect("localhost","root","","dName"); 
$image = addslashes(file_get_contents($_FILES['images']['tmp_name']));
$query = "INSERT INTO student_img (id,image) VALUES('','$image')";  
$query = mysqli_query($db, $query);

Sekarang untuk mengakses gambar

$sqlQuery = "SELECT * FROM student_img WHERE id = $stid";
$rs = $db->query($sqlQuery);
$result=mysqli_fetch_array($rs);
echo '<img src="data:image/jpeg;base64,'.base64_encode( stripslashes($result['image']) ).'"/>';

Semoga ini bisa membantu seseorang

Terima kasih.

0
Ganesh