Afficher une image a partir d'une Mysql database

ilyazi Messages postés 1 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 avril 2008 - 16 avril 2008 à 15:45
Refracto Messages postés 2 Date d'inscription mardi 17 juin 2003 Statut Membre Dernière intervention 31 mai 2011 - 31 mai 2011 à 18:12
je suis un etudiant debutant en php et je suis bloque sur un bout de code pour mon projet de fin d'annee. En voici deux fichiers que j'ai creer pour enregistrer des images dans une database et puis les afficher suivant que l'utilisateur demande plus de details sur ce produit:
1) fichier short_items recupere quelque details du produits a partir de la table product et affiche un liens au fichier views_items  pour voir plus de details sur le produits a savoir son description et son image, le code de ce fichier:
short_items.php:
<?php
include("config.php");
mysql_connect($dbhost, $dbusername, $dbpasswd);
mysql_select_db($database_name) or die( "Unable to select database");


$data = mysql_query("SELECT product_name,product_type,ended_date FROM Products ")or die(mysql_error()); ?>
 
  Product Name |
 Product Type
 Product Deadline |
 Product Details |

<?php while($info = mysql_fetch_array( $data )) { ?>
 ----

  <?php echo $info['product_name']  ?>&nbsp;&nbsp;&nbsp;,
  <?php echo $info['product_type']  ?>&nbsp;&nbsp;&nbsp;,
  <?php echo $info['ended_date']  ?>&nbsp;&nbsp;&nbsp;,
  <?php echo ' View details'?>&nbsp;&nbsp;&nbsp;,
 
<?php } ?>




2) views_items.php:


<?php
//$product_name = $_POST['product_name'];
include("conf.php");
mysql_connect($dbhost, $dbusername, $dbpasswd);
mysql_select_db($database_name) or die( "Unable to select database");
$data = mysql_query("SELECT Products.product_name, Products.product_type, Products.product_description, Products.ended_date,upload.product_name,upload.content FROM Products, upload where Products.product_name=upload.product_name ")or die(mysql_error());?>
 
  Product Name |
 Product Type
 Product Description |
 Product Deadline |
 Product image |

<?php while($info = mysql_fetch_assoc($data)) { ?>
 ----

  <?php echo $info['product_name']  ?>&nbsp;&nbsp;&nbsp;,
  <?php echo $info['product_type']  ?>&nbsp;&nbsp;&nbsp;,
  <?php echo $info['product_description']  ?>&nbsp;&nbsp;&nbsp;,
  <?php echo $info['ended_date']  ?>&nbsp;&nbsp;&nbsp;,
    header("Content-type:$type");
  echo base64_decode($content);
    ?>",
 
<?php } ?>


ce dernier fichiers me donne que des carres au croix rouge a l'interieur au lieux des images que contienne la table upload. est-ce que quelqu'un peux m'expliquer comment afficher un blob champ d'une Mysql table. Aussi tous comments sur le code ou un autre moyen d'afficher un image a partir d'un fichier ou database serais util pour moi. 
je suspecte la partie en rouge apres un debug que j'ai fait, merci vos aides.
Merci d'avance!


 


 

3 réponses

cs_Dawelle Messages postés 15 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 17 avril 2008 1
16 avril 2008 à 20:23
Salut,

La partie rouge est effectivement suspecte :

Au niveau HTML, pour afficher une image, tu dois utiliser la balise :  fichier.extension" alt="" />

Dans ton code, tu affiches le contenu de ton image (venant de MySQL) à la place de l'url du fichier.


De plus, la balise " alt=""></td>

Essaie d'écrire : image.php?name=
XXX"> en remplaçant XXX par le product_name puis de mettre le code PHP affichant le contenu de l'upload (avec la requête MYSQL et le product_name associé) dans le fichier image.php.


Si tu vas avec ton navigateur sur: http://tonsite/image.php?name={product_name existant}, tu devrais voir l'image qui s'affiche, autrement c'est qu'il y a  une erreur dans le code php.


Pour ma part, lors de l'upload, j'aurais plutôt tendance à enregistrer
l'image envoyée directement sur le serveur FTP (avec un numéro genre
1.jpg, 2.jpg, 3.jpg...) et ensuite afficher directement l'image avec
son numéro d'identification enregistré / associé au produit.

Bon courage :)
1
samu_ham Messages postés 19 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 12 janvier 2019 1
23 juin 2009 à 19:52
je suis débutant dans php
j'ai réussi a faire pas mal de chose mais un problème que je suis bloquer sur l'affichage des images a partir d'une base de donnee ou je stoke toutes les images avec leurs titre ,tag, description, url (doc.zip).
j'ai essayer plusieur méthode mais ca donne des carreau et des lettres au lieu d'afficher des images.voila mon une partie du scripte:
    while($row = mysql_fetch_array($result)) {
      $x=$row['id'];
          if($i==$x){
         echo '
';
         echo $row['tag'];
         echo $row['titre'];?>
        <?php
         echo '';?>
         <?php
         echo "view
\n";
         echo '
';
       }?>
1
Refracto Messages postés 2 Date d'inscription mardi 17 juin 2003 Statut Membre Dernière intervention 31 mai 2011 1
31 mai 2011 à 18:12
Bonjour,
Si ca peux vous aider il y a un exemple pour afficher une image qui ne viens pas d'un fichier :
http://dean.edwards.name/weblog/2005/06/base64-ie/

De plus en regardant de plus prêt le tag img on a :

donc : "data:image/"+type de l'image+";"+le type d'encodage+","+les bytes

voila
(-:Refrato:-)
1
Rejoignez-nous