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

Langage PHP Discussion :

afficher une image provenant d'une bdd


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Points : 53
    Points
    53
    Par défaut afficher une image provenant d'une bdd
    bonjour,
    le code ci dessous devrait afficher une image provenant d'une bdd mysql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
      $pdo=new PDO("mysql:host=localhost;dbname=afi","root","");
      $req = $pdo->query("SELECT photo FROM images WHERE id='$_SESSION[id]'");
      while($donnees=$req->fetch())
     {
       echo('<img photo = "'.$donnees['photo'].'">');
     }
    ?>
    le problème, c'est que l'image ne s'affiche pas. A la place j'ai des sigles bizarres qui s'affichent, genre fichier corrompu. Pouvez vous me dire ce qui ne vas pas ? dans mon code. Merci !!

  2. #2
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 627
    Points
    16 627
    Par défaut
    Salut

    La ligne 7 ne serait elle pas plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       echo('<img src= "'.$donnees['photo'].'">');

  3. #3
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 228
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 228
    Points : 8 487
    Points
    8 487
    Billets dans le blog
    17
    Par défaut
    A la place j'ai des sigles bizarres qui s'affichent, genre fichier corrompu. Pouvez vous me dire ce qui ne vas pas ? dans mon code.
    Tu stockes en base le binaire de l'image ?

    Pour embarquer l'image directement dans la page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="data:image/jpeg;base64,<?= base64_encode($donnees['photo']) ?>">
    Comme tu peux le voir il faut spécifier le type MIME correct.

  4. #4
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Salut

    La ligne 7 ne serait elle pas plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       echo('<img src= "'.$donnees['photo'].'">');
    j'ai fait la correction, aucun changement dans ma page, toujours pas d'image

  5. #5
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 228
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 228
    Points : 8 487
    Points
    8 487
    Billets dans le blog
    17
    Par défaut
    Affiche la source de la page obtenue, et vérifie si le contenu est cohérent
    Donne-nous le script que tu exécutes

    Bien sûr tu auras fait attention à ce que le type MIME déclaré corresponde bien au type MIME de l'image

  6. #6
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Points : 53
    Points
    53
    Par défaut
    seb, j'ai inséré ton code comme ci-dessous ligne 6. Pas de changement, j'ai toujours un problème d'encodage de l'image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
       $pdo=new PDO('mysql:host=localhost;dbname=afi;charset=utf8','root','');
       $req = $pdo->query("SELECT photo FROM images WHERE id='$_SESSION[id]'");
      while($donnees=$req->fetch())
      {
        echo'<img src="data:image/jpeg;base64,<?= base64_encode('.$donnees['photo'].') ?>">';
      }
    ?>

  7. #7
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 228
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 228
    Points : 8 487
    Points
    8 487
    Billets dans le blog
    17
    Par défaut
    Je n'ai pas écrit cela. Là tu mets du PHP dans du PHP, forcément ça ne fonctionnera pas.

  8. #8
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Points : 53
    Points
    53
    Par défaut
    si j'utilise ton code tel quel j'ai ce message d'erreur :
    Parse error: syntax error, unexpected token "<" in C:\XAMPP\htdocs\.....

  9. #9
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 228
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 228
    Points : 8 487
    Points
    8 487
    Billets dans le blog
    17
    Par défaut
    Et bien oui, je te donne une ligne de code présentant l'idée générale, ensuite à toi de l'adapter à ton contexte

    Généralement c'est une mauvaise idée d'afficher du HTML avec du PHP, donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
      $pdo=new PDO("mysql:host=localhost;dbname=afi","root","");
      $req = $pdo->query("SELECT photo FROM images WHERE id='$_SESSION[id]'");
    ?>
     
    <?php while($donnees=$req->fetch()): ?>
     
        <img src="data:image/jpeg;base64,<?= base64_encode($donnees['photo']) ?>">
     
    <?php endwhile ?>

  10. #10
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Points : 53
    Points
    53
    Par défaut
    Et bien oui, je te donne une ligne de code présentant l'idée générale, ensuite à toi de l'adapter à ton contexte

    Généralement c'est une mauvaise idée d'afficher du HTML avec PHP
    Tu as raison ! Mais moi j'ai adapté par rapport aux ressources que j'ai trouvé sur le Web. Là le code HTML était intégré dans la boucle While ??? et d'après la vidéo du cours ça fonctionnait ????
    Bizarre !

    merci Seb !

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 24/06/2016, 15h34
  2. Afficher une BDD MySQL dans un ListView
    Par Invité dans le forum Composants graphiques
    Réponses: 44
    Dernier message: 17/06/2011, 14h44
  3. afficher une bdd de sql serveur dans une fenêtre WindowsForms
    Par mikoukoumi dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/05/2010, 17h56
  4. [MySQL] Code PhP pour afficher une BDD
    Par FSDonwload dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/04/2008, 00h15
  5. Afficher une bdd avec une TBGRID [builder 2007]
    Par bullrot dans le forum C++Builder
    Réponses: 17
    Dernier message: 18/11/2007, 17h34

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