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

zouzou -  
Guigeek77 Messages postés 68 Statut Membre -
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...

4 réponses

  1. Utilisateur anonyme
     
    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
    1. zouzou
       
      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
    2. Guigeek77 Messages postés 68 Statut Membre 2
       
      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
  2. Utilisateur anonyme
     
    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
  3. Guigeek77 Messages postés 68 Statut Membre 2
     
    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
    1. zouzou
       
      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
    2. Guigeek77 Messages postés 68 Statut Membre 2
       
      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
  4. -helper- Messages postés 92 Statut Membre 27
     
    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
    1. zouzou
       
      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