Comment afficher toutes les images stockées dans une base de données

Je fais une galerie qui utilise une base de données MySQL (ouais je sais c'est une mauvaise pratique, mais c'est l'exigence pour le moment). Je peux télécharger des images multiples, mais je vais avoir des difficultés pour afficher toutes les images stockées dans la base de données. Le FORMULAIRE permet de cinq images à télécharger. Ensuite, l'utilisateur doit procéder à une autre page où toutes les images dans la base de données (y compris celles téléchargées récemment) sera affiché, ainsi que la description des images. J'ai un code déjà, mais celui qui va travailler sur l'affichage ne fonctionne pas ou que je pense est faux.

Voici le code du formulaire:

 <html>
 <head>
    <title> Upload image</title>

 </head>
 <body> 
 <div align="center">
    <form action="fUpload.php" method="POST" enctype="multipart/form-data">
    All forms must be filled. <br />
    File: <br />
    <input type="file" name="image[]"/> <input type="text" name="imageDescription[]" size="30" /> <br />
    <input type="file" name="image[]"/>  <input type="text" name="imageDescription[]" size="30" /> <br />
    <input type="file" name="image[]"/>  <input type="text" name="imageDescription[]" size="30" /> <br />
    <input type="file" name="image[]"/>  <input type="text" name="imageDescription[]" size="30" /> <br />
    <input type="file" name="image[]"/> <input type="text" name="imageDescription[]" size="30" /> <br />

    <input type="submit" value="Upload image" />

    </form>
</div>  
</body>
</html>

Voici le script de téléchargement:

 <?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 '<br />';
/*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 '<br \>';
$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. <p /> <p /><img src=display.php?    id=$last_id>";
//header('Lcation: display2.php?id=$last_id');
}
//}
}
mysql_close($con);
header('Location: fGallery.php');
?>

Et, enfin, celui qui doit s'afficher:

<html>
<body>
</body>
<?php
//connect to the database//
mysql_connect("localhost","root", "") or die(mysql_error());
mysql_select_db("imagedatabase") or die(mysql_error());
//requesting image id
$id = addslashes($_REQUEST['id']);
$image = mysql_query("SELECT * FROM images WHERE id = $id");
while($datum = mysql_fetch_array($image, MYSQL_ASSOC))
{
printf("Description %s $image = $image['image'];
header("Content-type: image/jpeg");
}
mysql_close();
?>

Votre aide est très appréciée. J'ai besoin de mal à passer.

  • eh bien, au moins vous êtes absent de s'échapper avant que les guillemets doubles printf... alors vous avez besoin d'appeler $datum['image']...
  • que voulez-vous dire? 😀
InformationsquelleAutor SimonCode | 2012-01-06