J'arrive pas a afficher une photo dans un champ du table"phpMyAd

Fermé
zouzou - 27 mai 2014 à 16:09
Guigeek77 Messages postés 54 Date d'inscription vendredi 14 mars 2014 Statut Membre Dernière intervention 10 juin 2014 - 4 juin 2014 à 17:28
Bonjour,


j'ai un petit problème...
alors j'ai déclarer un champ 'PHOTO' de type BLOB dans un table phpmyadmin.
j'ai relier la photo qui ce trouve dans répertoire c:\....
il m'affiche [BLOB - 18.8 kio] dans ce champ.
dans la partie programmation PHP :
le php affiche touts les champs text, mai le champ PHOTO non?
voila ce que affiche:
?J-??J@?s?c ?IHh?Ji8?u)?jv??Z)(?:???b<?np???? !8??>?iH???P?v0????%-%1??* ^G?IIKLP(??LR? ????P~? @?z? S???:QH$????N??????N?GL?QE2?(?AEPIKIL???? Hh?????m?BqIL}?Rj0?????jAa?o?????*&???UU????&?Y#I?Q{??l???x??;W7??k???;??????)??4?6???^x??'?S?"_???:34??-
je voudrai afficher la photo sur une zone input..
<input name="photo" type="image" id="photo" value="<?php echo $row_r['PHOTO']; ?>" align="middle" />
NB: base de données dynamioque...

A voir également:

4 réponses

Utilisateur anonyme
27 mai 2014 à 17:19
Bonjour

L'attribut value d'une balise <input type="image" mais la valeur envoyée quand on soumet le formulaire
Pour voir l'image, il faut mettre son url dans l'attribut src. Et comme ton image à toi est dans un champ blob, elle n'a pas d'url, il faut que tu bricoles un peu.
C'est (entre autres) pour ça qu'on ne met normalement PAS les images dans les bases de données : on met simplement un lien vers l'image, et on stocke l'image dans un dossier. Comme ça, c'est facile d'avoir une url à mettre dans les liens (img ou input type="image)
0
Mr Le père...
ou Mon Père
je voudrais m'aider pour résoudre se problème
alors 4 h de recherche j'arrive a aucune solution merci pour votre aide
toujours l'affichage de touts les champs texte normale mais le champ de la PHOTO non
exmp:
nom: XXXX
Prénom: YYYY
Date Nais:12/12/2014
etat employer : non inscrit
photo :

)????Mi????j?????)?Y?Z??EMz?R???6?Q?y??5fa???uL?=??)??y?O??I??d??T??v?\????o??S????K?????S??+??SQMY?;??????eR??j?*? ?[??x??\???^y????.cA???*e'??q??kL??H?~??U'???????????KQc???M5P???V??????b?vW*0e?;??????i?!
merci pour votre aide et a tous le monde qui m'aider sur ce problème...
0
Guigeek77 Messages postés 54 Date d'inscription vendredi 14 mars 2014 Statut Membre Dernière intervention 10 juin 2014 2
28 mai 2014 à 15:31
Dans ta colonne qui contient l'image tu mets le chemin d'où se situe ton image !
Tu crées un dossier du style "Images" et tu mets tes photos dedans.
Dans ta BDD tu devras avoir le chemin "../Image/TonImages.jpg', tout simplement.
0
Utilisateur anonyme
28 mai 2014 à 14:42
As-tu compris ma réponse ? Car je t'ai expliqué la cause du problème et le remède. Je veux bien que tu aies encore besoin d'aide pour les détails, mais à ta réponse j'ai l'impression que tu n'as pas remarqué que je t'avais donné la solution.
0
Guigeek77 Messages postés 54 Date d'inscription vendredi 14 mars 2014 Statut Membre Dernière intervention 10 juin 2014 2
28 mai 2014 à 15:32
Salut.

Essaie ça :

Applique un style-css sur ton "<input type='text'>"
comme ceci :
<input type="text" style="background-image:url(images/tonimage.png);
background-position:left;
background-repeat:no-repeat;
padding-left:18px;
width:175px;" />

tonimage.png => l'image a afficher dans l'input
background-position => l'emplacement de ton image
background-repeat => si tu veux que l'image sois repetée , mais dans ton cas je crois pas que tu veuilles repeter ton image
Alors tu dois ajouter le padding => permet de décaler le focus afin qu'on ait l'impression que l'image n'est pas en fond
Et le padding doit etre >= a la largeur de ton image

Sinon, regarde ma réponse plus haut.

Bon courage
GuiGeek
0
MERCI MR Guigeek77
MAIS J'ai plusieurs image (photo):
c-a-d:
chaque employer avec sont photo...
10 empl avec 10 photos
et a chaque changement d'affichage d'un empl , il faut affiche sont photo..
plus des aides SVP...
ET MERCI...
0
Guigeek77 Messages postés 54 Date d'inscription vendredi 14 mars 2014 Statut Membre Dernière intervention 10 juin 2014 2
4 juin 2014 à 17:28
Pour afficher les photos de chaque personne tu fais une boucle while !

Tu fais ta requête qui selectionne la personne + l'image et hop, tout s'affiche !
0
-helper- Messages postés 89 Date d'inscription mercredi 21 mai 2014 Statut Membre Dernière intervention 15 juin 2014 27
Modifié par -helper- le 29/05/2014 à 15:31
Attention si j'ai bien compris !
Il a dit au début qu'il utilisait un champ Blob pour mémoriser l'image...
(en gros, c'est le contenu du fichier qu'il mémorise en base de données (le binaire), pas son chemin d'accès !)

En gros, moi j'aurais plutôt fait un webservice "getEmployePhoto.php?employeid=1" :
- on récupère l'id employé fourni en appelant le script
- On cherche l'employé en base de données et on récupère le binaire de sa photo
- On envoi le bon Mime type (header: image/jpeg...)
- Puis on envoie les données binaire dans le buffer de sortie (echo contenu $row_r['PHOTO'])
- fin
A cette étape on peut déjà vérifier qu'on voit bien la photo en appelant le webservice avec le navigateur...

Et effectivement dans le profil de l'employé rajouter:
<img src="getEmployePhoto.php?employeid=1" />

Normalement, magique la photo s'affiche !

Sans faire de webservice, on peut aussi encoder directement une image en hexa dans le code HTML - cf: https://stackoverflow.com/questions/6005690/html-how-can-i-display-an-image-using-just-its-hex-representation
Attention, cette technique ne marche pas sur tous les navigateurs il me semble, et surtout, on ne bénéficie plus du cache du navigateur... => on recharge systématiquement l'image à chaque affichage de page...

Bon mis à part ces remarques techniques...
L'utilité de mettre ses images en base de données et peut être pas forcement très justifié, et pour le coup stocker simplement le chemin de l'image aurait été peut être plus simple , et plus performant (voir meme appeler chaque image 1.jpg pour l'employé d'id 1...) !...
S@M
0
MERCI Mr helper ...
mais ça marche pas ...!
voila ce que j'ai :
<td bordercolor="#FFFFFF">
<div align="right">
<input name="PHOTO" type="image" id="PHOTO" value="<?php echo $row_r['PHOTO'];?> align="middle" width="70" height="73" />
pour le row_r: c'est la colone du champ de table "base des données" qui a été déclarer de type BLOB et relier avec le Répertoire des photos... toujours l'affichage en :J-??J@?s?c ?IHh?Ji8?u)?jv??Z)(?:???b<?np???? !8??>?iH???P?v0????%-%1??* ^G?IIKLP(??LR? ????P~? @?z? S???:QH$????N??????N?GL?QE2?(?AEPIKIL???? Hh?????m?BqIL
merci de vous m'aide et tous le monde qui a retrouver la solution de ce problème...
0