J'arrive pas a afficher une photo dans un champ du table"phpMyAd
zouzou
-
Guigeek77 Messages postés 54 Date d'inscription Statut Membre Dernière intervention -
Guigeek77 Messages postés 54 Date d'inscription Statut Membre Dernière intervention -
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...
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:
- J'arrive pas a afficher une photo dans un champ du table"phpMyAd
- Table ascii - Guide
- Google photo - Télécharger - Albums photo
- Table des matières word - Guide
- Google maps photo maison - Guide
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
4 réponses
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)
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)
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.
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
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
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
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
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...
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...
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...
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.