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 :

Afficher une image de type blob


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de bond70
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 300
    Par défaut Afficher une image de type blob
    Salut,

    Voilà j'ai une table "étudiant" qui contient le nom, prénom, adresse...et la photo de l'étudiant (de type blob).

    Lorsque j'affiche les données contenues dans la table grâce à ce code PHP, l'image s'affiche avec des caractères.

    Comment faire pour qu'elle s'affiche normalement ?

    MERCI !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $sql = 'SELECT * FROM Etudiant';
     
    // on envoie la requête
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
    // on fait une boucle qui va faire un tour pour chaque enregistrement
    while($data = mysql_fetch_assoc($req))
        {
        // on affiche les informations de l'enregistrement en cours
        echo $data['idEtudiant'].' '.$data['nomEtudiant'].' '.$data['prenomEtudiant'].' '.$data['photoEtudiant'].' '.$data['adresseEtudiant'].' '.$data['codePostalEtudiant'].' '.$data['villeEtudiant'].' '.$data['paysEtudiant'].' '.$data['emailEtudiant'];
     
        }

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Et bien, déjà à la source il y a un problème, car faire un simple echo sans plus ça ne peux pas fonctionner, il faut au moins mettre une balise HTML <img />, ne serait ce que pour indiquer au navigateur de c'est une image.

    Ensuite, vient du fait que l'image n'est pas un fichier présent sur le serveur, mais que c'est un flux de données (binaire ou que sais je ...).
    La technique la plus simple serait de créer un fichier (genre image_blob.php), celui ci s'occupera de générer le flux.

    Exemple :
    page image_blob.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    // On récupère la paramètre (l'étudiant)
    $idEtudiant = $_GET['idEtudiant'];
     
    // On récupère l'image via une requête SQL, et on l'affiche
    echo $photoEtudiant;
    ?>
    Et la page principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img src="image_blob.php?idEtudiant=<?php echo $data['idEtudiant']; ?>" />
    Question comme ça :
    Est il indispensable que les images soient dans la Bdd ?

  3. #3
    Membre éclairé Avatar de bond70
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 300
    Par défaut
    Salut et merci,

    Oui il est obligatoire que les images soit dans la BDD (je sais que c'est loin d'être optimal!).

    Le but est de faire en fait un trombinoscope des étudiants sur une seul et même page, avec en dessous de leur photo leur nom, prénom...

    Comment pourrais-je adapter ton code pour qu'il affiche plusieurs photos ?

    Voilà

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Comment pourrais-je adapter ton code pour qu'il affiche plusieurs photos ?
    En mettant 2 balises <img />, et appeler la bonne image, la paramètre en faite.

    C'est un faut problème ton truc, fait le comme si c'était un site classique, tout simplement.
    La seule particularité, c'est de "passer" un paramètres, un ID correspondant à la photo pour pouvoir la rechercher.
    Si tu parviens à le faire pour une image, tu peux le faire pour 100.


    Aussi, si tu est obligé de mettre les images dans la Bdd, comme ça, à titre personnel, je les aurais mises dans une autre Bdd, rien que pour elles, dans le seul but de soulager la table principale des étudiants.
    Mais c'est un avis perso

  5. #5
    Membre éclairé Avatar de bond70
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 300
    Par défaut
    Aussi, si tu est obligé de mettre les images dans la Bdd, comme ça, à titre personnel, je les aurais mises dans une autre Bdd, rien que pour elles, dans le seul but de soulager la table principale des étudiants.
    Ok je vais prendre en compte cette remarque

    Merci !

  6. #6
    Membre éclairé Avatar de bond70
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 300
    Par défaut
    Re,

    Voilà à cause de problèmes techniques je ne peux pas stocker les images des étudiants dans une autre bdd. Bref ce n'est pas le problème. J'ai donc crée une nouvelle table PhotoEtudiant :

    PhotoEtudiant(idPhotoEtudiant[int], nomPhotoEtudiant[varchar(25)], imagePhotoEtudiant [blob], taillePhotoEtudiant[int], typePhotoEtudiant[varchar(25)])
    Pour rappel voici ma table Etudiant :

    Etudiant(idEtudiant[int],nomEtudiant[varchar(25)],prenomEtudiant[varchar(25)],dateDeNaissanceEtudiant[date],adresseEtudiant[varchar(25)],codePostalEtudiant[int],villeEtudiant[varchar(25)],paysEtudiant[varchar(25)],emailEtudiant[varchar(25)],#sexeId[int],#photoEtudiant[int])
    J'ai suivi ce tutorial : http://beaussier.developpez.com/arti...hp/mysql/blob/

    J'ai donc rajouté un champ d'ajout de photo dans mon formulaire d'ajout d'étudiant.Cependant j'aimerais associer une photo unique pour chaque etudiant.

    Comment pourrais-je procéder ?

    Merci !

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Il me parait indispensable a lire ce sujet , de rappeler que le probléme n'est pas tellement de refaire l'image pour l'afficher, mais:
    Comment et en quelle base l'image a étée encodée dans le BLOB !

    Nous avons sur developpez.com un fichier remarquable car trés simple, qui traite tout depuis l'upload de l'image, son enregistrement dans Mysql, sa restitution C'est ICI ...
    http://beaussier.developpez.com/arti...hp/mysql/blob/

  8. #8
    Membre éclairé Avatar de bond70
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 300
    Par défaut
    Salut,

    Comme précisé dans mon post précédent j'ai déjà lu ce tutorial. Mon problème n'est pas d'afficher une image blob mais d'afficher l'image correspondant à un étudiant précis.

    Je ne veux pas de la photo de Paul dans le profil de Jean par exemple.

    Merci !

  9. #9
    Invité
    Invité(e)
    Par défaut
    Ok pardon,
    escuses moi mais pas le temps de transposer mon TOPO

    pour deux tables

    family Table:
    donnees : ==>Position Age
    Dad 41
    Mom 45
    Daughter 17
    Dog

    food Table:
    donnees : ==>Meal Position
    Steak Dad
    Salad Mom
    Spinach Soup
    Tacos Dad




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $query = "SELECT family.Position, food.Meal ".
     "FROM family, food ".
    	"WHERE family.Position = food.Position";
     
    $result = mysql_query($query) or die(mysql_error());
    while($row = mysql_fetch_array($result)){
    	echo $row['Position']. " - ". $row['Meal'];
    	echo "<br />";
    }
    ?>
    TE DONNERA
    Dad - Steak
    Mom - Salad
    Dad - Tacos

    Je te laisses transposer

  10. #10
    Membre éclairé Avatar de bond70
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 300
    Par défaut
    Ok merci.

    Mais avec cela les photos doivent être ajoutée dans le même ordre que les étudiants ?
    Donc il ne faut pas que je supprime une photo ou un étudiant, sinon çà décale tout ?

    Merci !

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par bond70 Voir le message
    Ok merci.
    Mais avec cela les photos doivent être ajoutée dans le même ordre que les étudiants ?
    Donc il ne faut pas que je supprime une photo ou un étudiant, sinon çà décale tout ?
    Merci !
    Ah non, tu dois te débrouiller pour que PhotoEtudiant.idPhotoEtudiant
    soit unique, mais choisi par toi et tu lui met
    Etudiant.photoEtudiant choisi par toi,

  12. #12
    Membre éclairé Avatar de bond70
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 300
    Par défaut
    Ok donc il faut que j'enlève l'auto_increment de etudiant.idEtudiant et de photoetudiant.idPhotoEtudiant ?

  13. #13
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par bond70 Voir le message
    Ok donc il faut que j'enlève l'auto_increment de etudiant.idEtudiant et de photoetudiant.idPhotoEtudiant ?
    Si tu veux faire cela, ce serait assez simple de savoir ou tu en es et alors carément tu stoques l'image avec une ID qui serait celle de l'image ! tu vois ça t' éviterais un champ, (Etudiant.photoEtudiant )

    de plus les trous tu t'en moques ça peut étre 1 2 3 18 22 etc ...
    donc si des éléves sont virés peut importe.

  14. #14
    Membre éclairé Avatar de bond70
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 300
    Par défaut
    ok merci

Discussions similaires

  1. Afficher une image de type OID en Java
    Par IMPRO dans le forum Général Java
    Réponses: 5
    Dernier message: 11/05/2012, 18h18
  2. [Joomla!] Insérer une image de type blob dans la base de données Joomla coding
    Par h.hassal dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 12/06/2010, 18h52
  3. [MySQL] Afficher une image stockée dans BLOB de la BDD
    Par gilou31 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/03/2008, 17h25
  4. [MySQL] Afficher une image d'un champ blob d'une base MySQL
    Par lolobedo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/11/2005, 10h10
  5. [.NET][CR] Comment afficher une image blob dans un état ?
    Par moucrack dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 25/06/2005, 13h49

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