Come visualizzare tutte le immagini memorizzate all’interno di un database

Sto creando una galleria che utilizza un database MySQL (sì, so che è una ctriggers pratica, ma è il requisito per il momento.) Posso caricare più immagini ma ho difficoltà a visualizzare tutte le immagini memorizzate all’interno del database. Il FORM consente di caricare cinque immagini. Quindi l’utente deve passare ad un’altra pagina in cui tutte le immagini nel database (comprese quelle caricate di recente) verranno visualizzate insieme alla descrizione delle immagini. Ho già il codice ma quello che funzionerà sul display non funziona o penso che sia sbagliato.

Ecco il codice del modulo:

   Upload image   
All forms must be filled.
File:





Ecco lo script che dovrebbe caricare:

  <?php //connect to the database// $con = mysql_connect("localhost","root", ""); if(!$con) { die('Could not connect to the database:' . mysql_error()); echo "ERROR IN CONNECTION"; } $sel = mysql_select_db("imagedatabase"); if(!$sel) { die('Could not connect to the database:' . mysql_error()); echo "ERROR IN CONNECTION"; } //file properties// $file = $_FILES['image']['tmp_name']; echo '
'; /*if(!isset($file)) echo "Please select your images"; else { */for($count = 0; $count < count($_FILES['image']); $count++) { //$image = file_get_contents($_FILES['image']['tmp_name']); $image_desc[$count] = addslashes($_POST['imageDescription'][$count]); $image_name[$count] = addslashes($_FILES['image]']['name'][$count]); echo '
'; $image_size[$count] = @getimagesize($_FILES['image']['tmp_name'][$count]); $error[$count] = $_FILES['image']['error'][$count]; if($image_size[$count] === FALSE || ($image_size[$count]) == 0) echo "That's not an image"; else { // Temporary file name stored on the server $tmpName[$count] = $_FILES['image']['tmp_name'][$count]; // Read the file $fp[$count] = fopen($tmpName[$count], 'r'); $data[$count] = fread($fp[$count], filesize($tmpName[$count])); $data[$count] = addslashes($data[$count]); fclose($fp[$count]); // Create the query and insert // into our database. $results = mysql_query("INSERT INTO images( description, image) VALUES ('$image_desc[$count]','$data[$count]')", $con); if(!$results) echo "Problem uploding the image. Please check your database"; //else //{ echo ""; //$last_id = mysql_insert_id(); //echo "Image Uploaded.

"; //header('Lcation: display2.php?id=$last_id'); } //} } mysql_close($con); header('Location: fGallery.php'); ?>

E infine quello che dovrebbe mostrare:

     

Il tuo aiuto è molto apprezzato. Ho bisogno di male per andare avanti.

Da quello che ho capito dal tuo post è che il caricamento e la memorizzazione non sono un problema, ma mostrare le immagini è. Probabilmente è perché stai usando vars che non sono impostati, quindi nessun risultato può essere trovato nel database. Se ho frainteso fammelo sapere.

  

Guarda anche cosa dice Prof83. Ignora il mio post se il tuo script funziona con una sola immagine.

Ultimo ma non meno importante, se si utilizzano diversi tipi di file, viene visualizzato anche il formato MIME corretto nell’intestazione.

Aggiornamento Ho combinato entrambe le risposte.

Modifica il tuo loop:

 '; } ?> 

Crea un nome di pagina img.php

  

Ok, non è ansible visualizzare più immagini all’interno di una pagina immagine / jpeg …

Stai dicendo al browser che la pagina è immagine / jpeg (in altre parole, la pagina è AN IMMAGINE) ma stai facendo eco a più dati di immagine

Dovresti piuttosto usare la pagina della galleria per mostrare tutte le immagini come questa:

 '; ?> 

e in img.php:

 // Load the image data for id in $_GET['id']; header("Content-type: image/jpeg"); echo $data;