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 images [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 149
    Par défaut Afficher images
    Bonjour,

    Je conçois un site avec une bdd devant permettre au visiteur de visualiser
    la photo d'objets avec leur description.

    J'éprouve toutefois une difficulté à afficher les images de ma table MySQL
    dans le tableau que j'ai constitué (les données s'affichent correctement).

    Je reçois un message d'erreur "parse error ... on line 41" (il s'agit de
    la ligne du tableau qui contient la balise <img> insérant le chemin de la photo.

    Voici la structure de ma table:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TABLE objects (
    id INT NOT NULL AUTO_INCREMENT,
    category VARCHAR (50) NOT NULL,
    photo VARCHAR (100) NOT NULL,
    name VARCHAR (100) NOT NULL,
    description VARCHAR (200) NOT NULL,
    country VARCHAR (50) NOT NULL,
    price INT(10) DEFAULT '0' NOT NULL,
    PRIMARY KEY (id)
    );

    Dans le champ "photo" j'ai inséré le chemin vers la photographie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... ;img/pict1.jpg; ...
    Puis voici le tableau qui doit afficher les informations:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <form action="furniture.php" method="POST">
    <table cellspacing=0" cellpadding="0" border="1">
    	<?php
    	if($result) { 
    		while($data = mysql_fetch_assoc($result)) {  
    			printf (
    				"<tr>
    					<td><img src="$data['photo']"></td>
    					<td>%s</td>
    					<td>%s</td>
    					<td>%s</td>
    				</tr>",
    				$data["photo"],
    				$data["name"],
    				$data["description"],
    				$data["country"]
    			);
    		}  // end while
    		if(mysql_num_rows($result) == 0) { 
    			$msg.="Aucune information disponible";
    		}
    	} 
    	?>
    </table>
    </form>
    Je vous remercie beaucoup pour votre aide.

  2. #2
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Il manque les points de concaténation peut-être, non ?
    En tous les cas, un élément de tableau ne peut pas être interprété dans une chaîne encadrée avec des doubles quotes...
    Merci de ne pas oublier le tag résolu, à+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 149
    Par défaut
    Sub0,
    j'ai remplacé les doubles guillemets par de simples guillemets et rajouté le point de concaténation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src='.$data["photo"]'>
    mais à présent je reçois le message d'erreur suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in ...
    Merci.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 149
    Par défaut
    Désolé Sub0, c'est seulement en recopiant le code dans le message que j'ai omis le 2e point. Je l'ai bel et bien inséré dans ma page PHP.

  5. #5
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Mon conseil : remplace ton Printf() par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    echo '<tr>
      <td><img src='.$data['photo'].'></td>
      <td>'.$data['name'].'</td>
      <td>'.$data['description'].'</td>
      <td>'.$data['country'].'</td>
    </tr>';

  6. #6
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    J'ai fait une erreur, il manque le double quote pour le nom de l'image.
    J'ajoute également la propriété Alt...:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    echo '<tr>
      <td><img src="'.$data['photo'].'" alt="" /></td>
      <td>'.$data['name'].'</td>
      <td>'.$data['description'].'</td>
      <td>'.$data['country'].'</td>
    </tr>';

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 149
    Par défaut
    Merci Sub0,
    Une petite amélioration déjà: je ne reçois plus de message d'erreur. Le tableau s'affiche avec les données mais sans photos (plus précisément avec des icônes de photos non trouvées).

  8. #8
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Citation Envoyé par jakkihm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src='.$data["photo"]'>
    Il manque le 2ème point de concaténation, entre la variable et le quote...

    Attention, le forum n'est pas un débuggueur.

    Voici 2 liens à lire absolument :

    http://php.developpez.com/faq/?page=...riables_chaine

    http://pbnaigeon.developpez.com/tuto...phe-guillemet/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [struts] Afficher image dans JSP a partir d'un byte[]
    Par igloof dans le forum Struts 1
    Réponses: 1
    Dernier message: 16/05/2006, 11h11
  2. Réponses: 2
    Dernier message: 17/02/2006, 13h26
  3. Réponses: 9
    Dernier message: 27/01/2006, 18h00
  4. [MySQL] Afficher image stockée sous forme binaire
    Par Luffy Duck dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 26/12/2005, 18h30
  5. afficher image
    Par sanosuke dans le forum Bases de données
    Réponses: 1
    Dernier message: 19/10/2004, 09h43

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