questa e la tabella immagini:
Non hai caricato il tipo di immagine però, prova a sostituire questa riga
conCodice PHP:header("Content-type: $row->im_tipo");
è solo per capire se il problema dipende da questo, anche perché pjpeg è valido per IE, per gli altri browser va bene image/jpeg. Proviamo vaCodice PHP:header("Content-type: image/pjpeg");
![]()
( ah, scusa, devo richiedertelo... hai fatto la connessione al tuo db anche nella pagina img.php? )
ciao neida, niente non mi funziona, ho fatto anche la connessione al db, ma niente, stiamo sempre la
Ho provato con include ("connessione.php"); ma niente, e poi ho messo questo:
codice:<?php $host = 'localhost'; // dove trovare la base dati $base = 'db_immagini'; // nome della base dati $user = 'root'; // utente $pass = ''; // la sua password $con = mysql_connect ($host, $user, $pass) or die (mysql_error ()); $ret = mysql_select_db ($base) or die (mysql_error ()); ?> $id = isset($_GET['id']) ? (int)$_GET['id'] : ''; $sql = mysql_query("SELECT im_tipo, im_blob FROM immagini WHERE im_id = $id") or die(mysql_error()); $row = mysql_fetch_object($sql); header("Content-type: image/pjpeg"); echo $row->im_blob;
ragazzi come mai non riesco a vedere la foto che dovrebbe visualizzarmi dal db? al posto della foto mi visualizza la crocetta rossa, facendoci tasto destro sopra, me la trova, ma non me la visualizza. come mai?
questi sono i codici:
index.php per caricare la foto
frutta.php dove dovrebbe visualizzarmi le foto:codice:<html> <head> <title>Stoccaggio immagini nella base dati - Arch. Francesco Rollandin (Emilie)</title> </head> <body> <?php include ("trasferimento.php"); if ( isset($_FILES['imm']) ) { trasferimento(); } ?> <h3>Invio di un'immagine</h3> <form enctype="multipart/form-data" action="index.php" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="2000000" /> <input type="file" name="imm" size=50 /> <input type="submit" value="Inviare" /> </form> Lista immagini </p> </body> </html>
img.phpcodice:<html> <head> <title> Prova lettura (estrazione) record </title> </head> <body> <table> <?php $host="localhost"; $user="root"; $pass=""; mysql_connect($host,$user,$pass) or die ("Errore nella connessione, verificare i parametri"); mysql_select_db("db_immagini") or die ("errore nella selezione del database"); $dati = mysql_query("SELECT * FROM immagini WHERE IDcategoria = 11"); while ( $array = mysql_fetch_array($dati)) { echo "<tr>"; echo "<td><img src=\"img.php?id=$array[im_id]\" alt=\"\" /></td>"; echo "</tr>"; } mysql_close(); ?> </table> </body> </html>
dov'e che sbaglio?codice:$host = 'localhost'; // dove trovare la base dati $base = 'db_immagini'; // nome della base dati $user = 'root'; // utente $pass = ''; // la sua password $con = mysql_connect ($host, $user, $pass) or die (mysql_error ()); $ret = mysql_select_db ($base) or die (mysql_error ()); $id = isset($_GET['id']) ? (int)$_GET['id'] : ''; $sql = mysql_query("SELECT im_tipo, im_blob FROM immagini WHERE im_id = $id") or die(mysql_error()); $row = mysql_fetch_object($sql); header("Content-type: image/jpeg"); echo $row->im_blob;
Apri il file img.php e sostituisci
conCodice PHP:$id = isset($_GET['id']) ? (int)$_GET['id'] : '';
Non so forse dovrai rivedere con attenzione anche gli altri nomi dei campi della tua tabella, prova così. In ultimo, quando carichi l'immagine dovresti cercare di memorizzare insieme agli altri dati anche il tipo (im_tipo) per la corretta visualizzazione tramite l'header.Codice PHP:$id = isset($_GET['im_id']) ? (int)$_GET['im_id'] : '';
Ma come è possibile... vedo adesso che dalle ultime foto delle tue tabelle che hai inviato non hai ancora cambiato i dati nel campo IDcategoria nella tabella "immagini", cosa aspetti??
Ora che sono state fatte davvero tutte le modifiche possibili ed immaginabili la query che lanci in frutta.php non trova nessun record perchè là dove dici ... WHERE IDcategoria = 11 non esiste nessun record pari ad 11, hai il NOME della categoria non il suo ID. Ti avevo già suggerito di modificare questa cosa, vogliamo provare anche così?![]()
scusami, se ho capito ene, dovrei cambiare il numero 11 in frutta, giusto? L'ho fatto, ma adesso nella pagina frutta.php e scomparso la crocetta rossa, e non mi visualizza niente.
nel file frutta.php, a questa riga, ho messo:
prima c'era 11 , ho messo fruttacodice:$dati = mysql_query("SELECT * FROM immagini WHERE IDcategoria = frutta");
provando poi la pagina frutta.php, mi da quest'errore:
codice:Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\blob\frutta.php on line 14