IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Insérer photo dans un tableau [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Points : 44
    Points
    44
    Par défaut Insérer photo dans un tableau
    Bonjour

    Lorsque j'affiche une image stockée dans Mysql avec un script en php, cela fonctionne. Si je souhaite l'afficher dans un tableau, ça ne marche plus et j'ai une série de code étrange à la place de mon image du type : "ÿØÿàJFIFHHÿá".

    Le code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    // On récupère l'image
       $sql = "SELECT img_blob FROM table where login='".$login."'";
     
       $result = mysql_query($sql);
       $sortie = mysql_fetch_assoc($result);
     
     
     
     
    // On met en place les headers, pour dire qu'on a bien là une photo.
       header('Content-type: image/jpeg');  // cf 1)
       header('Content-transfer-encoding: binary');
     
     
    echo '<table>';
    echo '<tr><td>';
     
    echo $sortie["img_blob"];
     
    echo '</td></tr>';
    echo '</table>';
    Si je laisse tout simplement :

    echo $sortie["img_blob"]; l'image s'affiche

    Alors si quelqu'un pouvait m'expliquer comment insérer mon image dans un tableau SVP. Merci

    Yann

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    C'est normal, tes headers sont mal définis.

    Pour rappel, le header var permettre au navigateur comment interpréter ton fichier.

    Dans ton cas, tu places le header au milieu d'un tableau donc tu mélanges du texte et de l'image dans le meme fichier, ce qui fait que ton header est mal géré et qu'au lieu d'une iamge , tu as des caractèrs tordus.

    Une solution serait de créer un fichier php qui sert juste a renvoyer l'image, appelons le getImage.php, il recevra en paramètre la clé primaire pour extraire l'image souhaitée de la bdd.

    donc getImage.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
       //les headers de type image jpg
       header('Content-type: image/jpeg');  
       header('Content-transfer-encoding: binary');
       //connexion à la bdd au préalable
       $login=$_GET['login'];
       $sql = "SELECT img_blob FROM table where login='".$login."'";
       $result = mysql_query($sql);
       $sortie = mysql_fetch_assoc($result);
      //sortie de type image 
      echo  $sortie["img_blob"];
    Maintenant dans ton code initial, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // On récupère l'image
       $sql = "SELECT img_blob FROM table where login='".$login."'";
     
       $result = mysql_query($sql);
       $sortie = mysql_fetch_assoc($result);
    echo '<table>';
    echo '<tr><td>';
     
    echo '<img src="getImage.php?login='.$login.'">';
     
    echo '</td></tr>';
    echo '</table>';
    Voila c'est l'idée, ceci dit, je n'ai pas sécurisé le code. (genre parser le paramètre login lors de la réception par getImage.php ou encore tester que l'image existe bien avant de la renvoyer, etc..)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Points : 44
    Points
    44
    Par défaut Presque
    Bonjour Raideman

    Merci de ton aide mais cela ne fonctionne pas. J'ai une croix rouge sur fond blanc qui nous dit que l'image est introuvable.


    Or cela fonctionne si je ne mets pas de tableau.

    On ne dois plus en être très loin je pense...

    Merci

    Yann

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Points : 44
    Points
    44
    Par défaut ça marche !
    Un grand merci !

    Ce qui n'allait pas c'était la ligne vide au dessus du header.

    Bonne soirée

    Yann

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Insérer photo dans formulaires Access 2003
    Par Paolina dans le forum IHM
    Réponses: 0
    Dernier message: 15/07/2009, 19h50
  2. Comment peut-on mettre plusieurs photos dans un tableau ?
    Par anisx dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 24/05/2009, 15h04
  3. Mettre une zone de dessin avec photo dans un tableau
    Par sergiocorleon dans le forum VBA Word
    Réponses: 8
    Dernier message: 02/02/2009, 22h31
  4. [Tableaux] Affichage de photos dans un tableau.
    Par bilbtz dans le forum Langage
    Réponses: 2
    Dernier message: 28/02/2008, 12h55
  5. Nom d'une photo dans un tableau
    Par jmde dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 13/01/2007, 00h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo