Problema estrai immagini da db

Salve a tutti,

Sono nuovo del forum e ho provato a leggere dappertutto, ma purtroppo non ho trovato nessuna informazione.

Ho creato un database Mysql con una tabella contenente un campo BLOB (contiene delle immagini) ora ho bisogno di visualizzare in una stessa pagina sia le immagini sia altre informazioni che estraggo dal db, purtroppo per visualizzare le immagini conosco solo un codice che sfrutta la funzione header che non mi permette di visualizzare il resto. Qualche soluzione?

Posto il codice che sfrutto (non funzionante)

<?php
session_start();
@header ("Content-type: image/jpeg");
$sql = "SELECT immagine,testo FROM tabella;";
$ris=mysql_query($sql,$db) or die ("Errore nella query1");
?>
<?php
while($tmp=mysql_fetch_array($ris))
{
   $img=$tmp['immagine'];
        echo $tmp['testo']."<br/>";
   echo $img."<br/>";   
} 
?>

In questo modo mi riporta una pagina contenente l'url della stessa e nient'altro.

inviato 7 anni fa
blackvertigo
X 0 X

Quindi tu vuoi realizzare una pagina HTML che deve visualizzare delle immagini provenienti dal database. Nella pagina quindi devono esserci dei tag <img>, ciascuno dei quali deve specificare come indirizzo dell'immagine (attributo "src") non quello di una immagine vera e propria ma quello di uno script PHP che si occupa di restituire l'immagine prelevata da DB.

Lo script PHP in questione quindi deve restituire una sola immagine alla volta. Sarą la pagina HTML ad avere diversi tag <img> e quindi a richiamare diverse volte lo stesso script PHP per ottenere le diverse immagini. E' chiaro quindi che lo script PHP di volta in volta deve sapere quale immagine estrarre e potrą farlo, ad esempio, leggendo una variabile di tipo $_GET['immagine_id']. Da dove arriva questa variabile? Ovviamente dal tag <img>:

<img src="script.php?id_immagine=123">

 :bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

Grazie mille, ottima soluzione che funziona benissimo  :) Grazie ancora

risposto 7 anni fa
blackvertigo
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda