Afficher la bonne photo

Eléphanteau du PHP | 10 Messages

17 févr. 2009, 23:52

Bonjour
Sur un site de petites annonces, j'affiche la photo de la personne connectée. Or je voudrais afficher la photo de la personne concernée par le profil affiché.
Voici mon code :

Code : Tout sélectionner

//On récupère image $sql = "SELECT img_blob FROM toto where login='".$login."'"; $result = mysql_query($sql); $sortie = mysql_fetch_assoc($result); echo '<img src="getImage.php?login='.$login.'"Height=100 >';
Le problème doit venir du login='".$login.", mais que dois-je mettre à la place ?
J'ai essayé avec id='".$id." mais aucune photo ne s'affiche...

Si quelqu'un pouvait m'aider svp. Merci

Yann

Eléphant du PHP | 139 Messages

18 févr. 2009, 01:21

Or je voudrais afficher la photo de la personne concernée par le profil affiché.
Comment récupères_tu l'id de la personne concernée (sélectionnée).
Car ensuite la requête avec l'id personne select devrait fonctionnner:

Code : Tout sélectionner

$sql = "SELECT img_blob FROM toto where id='$id_select'";

Eléphanteau du PHP | 10 Messages

18 févr. 2009, 09:44

Et bien avec le code ci-dessous, j'arrive à récupérer tous les champs correspondant au profil selectionnné sauf l'image :

Code : Tout sélectionner

//Liste des requetes if ($civilite=="" AND $cp=="" ) { $reponse = mysql_query("SELECT * FROM toto ORDER BY id" ); } elseif ($civilite=="" ) { $reponse = mysql_query("SELECT * FROM toto WHERE cp='$cp' ORDER BY id" ) ; } elseif ($cp=="" ) { $reponse = mysql_query("SELECT * FROM toto WHERE civilite='$civilite' ORDER BY id" ); } else { $reponse = mysql_query("SELECT * FROM toto WHERE civilite='$civilite' AND cp='$cp' ORDER BY id" ); } while($row=mysql_fetch_assoc($reponse)){

Eléphant du PHP | 139 Messages

19 févr. 2009, 00:28

Et bien avec le code ci-dessous, j'arrive à récupérer tous les champs correspondant au profil selectionnné sauf l'image
Bizarre, la recherche d'un profil avec civilité et cp
Peux-tu me dire à quoi correspond un profil sélectionné?

Si j'ai bien compris, après les différentes conditions pour faire ta requête, tu ne devrais avoir qu'une entrée (un profil) dans le résultat de la requête.
As-tu vérifié si c'est le cas?
Pour vérifier, tu peux ajouter ce bout de code après la requete
$nb_reponse= mysql_num_rows($reponse);
echo $nb_reponse;
Car, si $nb_reponse==1 alors tu devrais récupérer ton image
while($row = mysql_fetch_array ($reponse)){
img_blob
$img_blob_recuperer = $row["img_blob"];
}
Est-ce les images sont stockées dans la bd ou dans un répertoire img?

Eléphanteau du PHP | 10 Messages

19 févr. 2009, 23:14

Bonsoir
Quand je parle de profils, il s'agit d'annonces correspondant aux critères séléctionnnés.
Dans le résultat de ma requête je peux donc avoir plusieurs réponses.

Ton premier code répond correctement en affichant le nombre d'annonces;

Quant à ton code devant afficher l'image, il semble ne pas fonctionner. Où devrais-je la placer ? Si il n'ya pas d'echo, il n'affiche rien ?

Et pour répondre à ta dernière question, mes images se trouvent dans MySql.
Merci de ton aide
Yann

Eléphant du PHP | 139 Messages

20 févr. 2009, 01:00

Or je voudrais afficher la photo de la personne concernée par le profil affiché
Quand je parle de profils, il s'agit d'annonces correspondant aux critères sélectionnnés.
Si je comprend bien, chaque annonce correspond à un profil (une photo de la personne).
//Tant qu'il y a un enregistrement (un profil)
while($row = mysql_fetch_array ($reponse)){
$img_blob_recuperer = $row["img_blob"];
echo '<pre>';
echo $img_blob_recuperer;
echo '<img src=".$img_blob_recuperer">';
echo '<pre>';
}
Et pour répondre à ta dernière question, mes images se trouvent dans MySql.
Si tu affiches l'image par ce code, je pense que dans ta bd tu as enregistré le lien (chemin d'accès) de l'image.
echo '<img src="getImage.php?login='.$login.'"Height=100 >';

Eléphanteau du PHP | 10 Messages

20 févr. 2009, 01:19

Voici le résultat à la place de l'image:
ÿØÿàJFIF``ÿí.Photoshop 3.08BIMí
Resolution``8BIM
FX Global Lighting Anglex8BIMFX Global Altitude8BIMóPrint Flags 8BIM
Copyright Flag8BIM'Japanese Print Flags
8BIMõColor Halftone SettingsH/fflff/ff¡™š2Z5-8BIMøColor Transfer Settingspÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ

Eléphant du PHP | 139 Messages

20 févr. 2009, 02:11

A priori tu enregistre dans le champ img_blob de type blob le code binaire de l'image et pas son url...
Pour afficher l'image, tu dois la recréer.
Essaye d'insérer ce code.
headers("Content-Type: image/gif");
echo '<img src=".$img_blob_recuperer">'


//ou essaye
 header ("Content-type: ".$img_blob_recuperer); 

Pour info trouvé sur un forum
ca doit être possible avec le type BLOB mais ca presente aucun intérêt puisque ca alourdit enormement la base.

par contre lors de l'upload d'une image tu peux la referencer dans ta base de données nom, chemin d'acces, taille ( en octets ), ... et la stocker phyqiquement dans un repertoire sur le serveur. Libre a toi d'architecturer le stockage au mieux
http://forum.hardware.fr/hfr/Programma ... 595_1.htm

Mammouth du PHP | 737 Messages

20 févr. 2009, 15:31

Salut,

Le mieux c'est de stocker l'url avec un champ varchar 255, j'ai jamais eu de souci perso.

Mega
;)