Problème de variable en pdo
Résolu
solara198
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
solara198 Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
solara198 Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un problème au niveau de ce bout de code
la galerie d'images s'affiche avec en dessous de chaque image a[1]= POUR LA PREMIERE ET a[2]= POUR LA DEUXIEME AINSI DE SUITE MAIS LE R2SULTAT '.$detail2.' ne s'affiche pas.
merci d'avance
j'ai un problème au niveau de ce bout de code
for ($i=0; $i<$nbpics; $i++){ $img2=$detail; $img3=$tableau[$i]; $echo_reponses ='<span>'.$img2.'</</span><span>'.$img3.'</span>'; $req='select NomArticle FROM article WHERE Image= :echo_reponses'; $requete2 = $bdd->prepare($req); $requete2->bindValue(':echo_reponses',$echo_reponses); $requete2->execute(); $image2 = $requete2->fetch(); $detail2 = $requete2->fetchColumn(); $requete->closeCursor(); $requete2->execute(); // pour chaque miniature, on affiche la miniature munie d'un lien vers la photo en taille réelle echo ' <td><a href="TESTT.PHP?&ctrligne='.$detail.'/' , $tableau[$i] , '" ><img src="'.$detail.'/' , $tableau[$i] , '" width="200" height="200" id="chemin" name="chemin" onchange="javascript:adresse();" alt="Image" /></BR></BR><CENTER> a['.$i.']='.$detail2.'</a></CENTER></BR></BR></td>';
la galerie d'images s'affiche avec en dessous de chaque image a[1]= POUR LA PREMIERE ET a[2]= POUR LA DEUXIEME AINSI DE SUITE MAIS LE R2SULTAT '.$detail2.' ne s'affiche pas.
merci d'avance
A voir également:
- Problème de variable en pdo
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp - Forum Microsoft Office
- Variable objet ou variable de bloc with non définie - Forum VB / VBA
- Vba range avec variable ✓ - Forum VB / VBA
- Vérifiez la variable d'environnement TEMP. QUE FAIRE ????? ✓ - Forum Microsoft Office
- Le fichier contient un programme écrit en python. le programme construit un mot secret mais il ne l'affiche pas. modifiez ce programme afin que à chaque itération de la boucle : la variable a augmente de 2 la variable b diminue de 1 ajoutez une instruction pour faire afficher le mot secret construit. quel est ce mot secret ? ✓ - Forum Python
13 réponses
C'est bien ce que je pensais.
Dans ton code PHP tu déclares ta variable :
Ensuite ta requête SQL :
Donc la même chose que
(Grossièrement hein, juste pour que tu comprennes)
Or ton champ Image contient juste "image\A.jpg", donc il ne trouvera jamais "<span>'.$img2.'</span><span>/</span><span>'.$img3.'</span>". Tu dois donc délcarer la valeur de $echo_reponses par le texte contenu dans le champ Image.
Dans ton code PHP tu déclares ta variable :
$echo_reponses ='<span>'.$img2.'</span><span>/</span><span>'.$img3.'</span>'
Ensuite ta requête SQL :
$req="select NomArticle FROM Article WHERE Image='.$echo_reponses.'";
Donc la même chose que
$req="select NomArticle FROM Article WHERE Image='<span>'.$img2.'</span><span>/</span><span>'.$img3.'</span>';
(Grossièrement hein, juste pour que tu comprennes)
Or ton champ Image contient juste "image\A.jpg", donc il ne trouvera jamais "<span>'.$img2.'</span><span>/</span><span>'.$img3.'</span>". Tu dois donc délcarer la valeur de $echo_reponses par le texte contenu dans le champ Image.
Bonjour,
Tu as des , à la place de . pour faire le lien entre des variables PHP et un echo de code HTML. Essayes avec ça:
Par contre tu as quelques maladresses dans ton code HTML, je te recommande une validation W3C ou au moins l'affichage du code source avec Firefox qui te donnera quelques conseils.
Tu as des , à la place de . pour faire le lien entre des variables PHP et un echo de code HTML. Essayes avec ça:
echo '<td><a href="TESTT.PHP?&ctrligne='.$detail.'/'.$tableau[$i].'"> <img src="'.$detail.'/'.$tableau[$i].'" width="200" height="200" id="chemin" name="chemin" onchange="javascript:adresse();" alt="Image" /> </BR></BR><CENTER> a['.$i.']='.$detail2.'</a></CENTER></BR></BR></td>';
Par contre tu as quelques maladresses dans ton code HTML, je te recommande une validation W3C ou au moins l'affichage du code source avec Firefox qui te donnera quelques conseils.
Bonjour,
Merci d'avoir répondu à ma question.
Je viens de tester avec ton code mais j'ai le même résultat.
c'est vrai que le code n'est pas propre mais lorsque je mets le nom de l'image directement à la place de la variable
ça marche avec le nom mais en mettant la variable $echo_reponses non
Merci d'avoir répondu à ma question.
Je viens de tester avec ton code mais j'ai le même résultat.
c'est vrai que le code n'est pas propre mais lorsque je mets le nom de l'image directement à la place de la variable
$req='select NomArticle FROM article WHERE Image= 'images/AA.jpg'; $requete2 = $bdd->prepare($req); ; $image2 = $requete2->fetch(); $detail2 = $requete2->fetchColumn(); $requete->closeCursor(); $requete2->execute();
ça marche avec le nom mais en mettant la variable $echo_reponses non
Ah oui, j'avais pas vu ce détail ^^
$req="select NomArticle FROM article WHERE Image='".$echo_reponses."'";
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
j'ai déja testé cela
Malheureusement ça marche tjrs pas.
je crois la syntaxe en pdo ne supporte pas ce genre de variable?????
je suis vraiment bloquée
Malheureusement ça marche tjrs pas.
je crois la syntaxe en pdo ne supporte pas ce genre de variable?????
je suis vraiment bloquée
en fait 'images/AA.jpg' est une image dans un dossier depuis lequel j'affiche ma galerie.moi je veux que les images de la galerie s'affichent avec le nom de l'article correspondant en dessous.
$echo_reponses ='<span>'.$img2.'</</span><span>'.$img3.'</span>';
si i= 1 ON AURA $echo_reponse='images/AA.jpg'
si i=2 ON AURA LA DEUXIÈME IMAGE ET AINSI DE SUITE
$echo_reponses ='<span>'.$img2.'</</span><span>'.$img3.'</span>';
si i= 1 ON AURA $echo_reponse='images/AA.jpg'
si i=2 ON AURA LA DEUXIÈME IMAGE ET AINSI DE SUITE
Je comprend pas tout.
Il y a quoi dans ta table article ? Comment fais-tu le lien entre l'image et son chemin physique sur le serveur ?
Il y a quoi dans ta table article ? Comment fais-tu le lien entre l'image et son chemin physique sur le serveur ?
Dans ma table article j'ai les champs :( IdArticle, NomArticle, Prix, libelle, Image, IdFournisseur(foreigne key), galerie)
je vous explique:
galerie (varchar) c'est le nom de dossier qui contient les images dont l'image de l' article.
Image 'varchar): est le chemin de l'image de l'article désigné.exemple (images/burger.jpg).
je vous explique:
galerie (varchar) c'est le nom de dossier qui contient les images dont l'image de l' article.
Image 'varchar): est le chemin de l'image de l'article désigné.exemple (images/burger.jpg).
je vous donne le code entier pour bien comprendre
<script language="javascript"> function adresse() { var path=document.getElementById("chemin").value; return path; }; </script> <?php define("SERVEURBD","127.0.0.1"); define("LOGIN","root"); define("MOTDEPASSE",""); define("NOMDELABASE","food"); function connexionBD() { try { $bdd = new PDO('mysql:host=' . SERVEURBD . ';dbname=' . NOMDELABASE, LOGIN, MOTDEPASSE); } catch(PDOException $e) { throw new Exception('Pb connexion serveur BD : ' . $e->getMessage()); } return $bdd; } function listerReference() { $bdd = connexionBD(); $requete = $bdd->query("select IdFournisseur,Nom from Fournisseur ;"); echo "<option value=\"-1\">Choisissez un fournisseur</option>"; while ($tab = $requete->fetch()) { echo "<option value=\"".$tab['IdFournisseur']."\">".utf8_encode($tab['Nom'])."</option>\n"; } $requete->closeCursor(); } function getDescriptionJson($id){ $bdd= connexionBD(); $requete = $bdd->prepare("select galerie from article where IdFournisseur = :idV ;"); $image = $requete->fetch(); $requete->bindParam(":idV", $id); $requete->execute() or die(print_r($requete->errorInfo())); $detail = $requete->fetchColumn(); $requete->closeCursor(); // on déclare un tableau qui contiendra le nom des fichiers de nos miniatures $tableau = array(); // on ouvre notre dossier contenant les miniatures $dossier = opendir ('./'.$detail.'/'); while ($fichier = readdir ($dossier)) { if ($fichier != '.' && $fichier != '..' && $fichier != 'index.php') { // on stocke le nom des fichiers des miniatures dans un tableau $tableau[] = $fichier; } } closedir ($dossier); // on défini le nombre de colonne sur lesquelles vont s'afficher nos miniatures $nbcol=4; // on compte le nombre de miniatures $nbpics = count($tableau); // si on a au moins une miniature, on les affiche toutes if ($nbpics != 0) { echo '<table>'; for ($i=0; $i<$nbpics; $i++){ $img2=$detail; $img3=$tableau[$i]; $echo_reponses ='<span>'.$img2.'</</span><span>'.$img3.'</span>'; $req="select NomArticle FROM Article WHERE Image='".$echo_reponses."'"; $requete2 = $bdd->prepare($req); $image2 = $requete2->fetch(); $detail2 = $requete2->fetchColumn(); $requete->closeCursor(); $requete2->execute(); // pour chaque miniature, on affiche la miniature munie d'un lien vers la photo en taille réelle echo '<td><a href="TESTT.PHP?&ctrligne='.$detail.'/'.$tableau[$i].'"> <img src="'.$detail.'/'.$tableau[$i].'" width="200" height="200" id="chemin" name="chemin" onchange="javascript:adresse();" alt="Image" /> </BR></BR><CENTER> a['.$i.']='.$detail2.'</a></CENTER></BR></BR></td>'; if($i%$nbcol==($nbcol-1)) echo '</tr>'; } echo '</table>'; } // si on a aucune miniature, on affiche un petit message :) else echo 'Aucune image à afficher'; }
Ta requête SQL recherche Image = <span>'.$img2.'</</span><span>'.$img3.'</span> (d'ailleurs tu as un "</" en trop) ce n'est pas logique si c'est le chemin du fichier qui est stocké dans ce champ.
bonne remarque merci.je viens de rectifié mais c'est pareil.
oui c'est le chemin de l'image qui est stocké
oui c'est le chemin de l'image qui est stocké
<script language="javascript"> function adresse() { var path=document.getElementById("chemin").value; return path; }; </script> <?php define("SERVEURBD","127.0.0.1"); define("LOGIN","root"); define("MOTDEPASSE",""); define("NOMDELABASE","food"); function connexionBD() { try { $bdd = new PDO('mysql:host=' . SERVEURBD . ';dbname=' . NOMDELABASE, LOGIN, MOTDEPASSE); } catch(PDOException $e) { throw new Exception('Pb connexion serveur BD : ' . $e->getMessage()); } return $bdd; } function listerReference() { $bdd = connexionBD(); $requete = $bdd->query("select IdFournisseur,Nom from Fournisseur ;"); echo "<option value=\"-1\">Choisissez un fournisseur</option>"; while ($tab = $requete->fetch()) { echo "<option value=\"".$tab['IdFournisseur']."\">".utf8_encode($tab['Nom'])."</option>\n"; } $requete->closeCursor(); } function getDescriptionJson($id){ $bdd= connexionBD(); $requete = $bdd->prepare("select galerie from article where IdFournisseur = :idV ;"); $image = $requete->fetch(); $requete->bindParam(":idV", $id); $requete->execute() or die(print_r($requete->errorInfo())); $detail = $requete->fetchColumn(); $requete->closeCursor(); // on déclare un tableau qui contiendra le nom des fichiers de nos miniatures $tableau = array(); // on ouvre notre dossier contenant les miniatures $dossier = opendir ('./'.$detail.'/'); while ($fichier = readdir ($dossier)) { if ($fichier != '.' && $fichier != '..' && $fichier != 'index.php') { // on stocke le nom des fichiers des miniatures dans un tableau $tableau[] = $fichier; } } closedir ($dossier); // on défini le nombre de colonne sur lesquelles vont s'afficher nos miniatures $nbcol=4; // on compte le nombre de miniatures $nbpics = count($tableau); // si on a au moins une miniature, on les affiche toutes if ($nbpics != 0) { echo '<table>'; for ($i=0; $i<$nbpics; $i++){ $img2=$detail; $img3=$tableau[$i]; $echo_reponses ='<span>'.$img2.'</span><span>/</span><span>'.$img3.'</span>'; $req="select NomArticle FROM Article WHERE Image='.$echo_reponses.'"; $requete2 = $bdd->prepare($req); $image2 = $requete2->fetch(); $detail2 = $requete2->fetchColumn(); $requete->closeCursor(); $requete2->execute(); // pour chaque miniature, on affiche la miniature munie d'un lien vers la photo en taille réelle echo '<td><a href="TESTT.PHP?&ctrligne='.$detail.'/'.$tableau[$i].'"> <img src="'.$detail.'/'.$tableau[$i].'" width="200" height="200" id="chemin" name="chemin" onchange="javascript:adresse();" alt="Image" /> </BR></BR><CENTER> a['.$i.']='.$detail2.'</a></CENTER></BR></BR></td>'; if($i%$nbcol==($nbcol-1)) echo '</tr>'; } echo '</table>'; } // si on a aucune miniature, on affiche un petit message :) else echo 'Aucune image à afficher'; }
merci sipherion de m'avoir répondu
Oui.lorsque je fais echo 'Image = '.$echo_reponses.'';
avec $echo_reponses ='<span>'.$img2.'</span><span>/</span><span>'.$img3.'</span>';
et
$img2=$detail;
$img3=$tableau[$i];
ça donne bien le chemin de l'image
Oui.lorsque je fais echo 'Image = '.$echo_reponses.'';
avec $echo_reponses ='<span>'.$img2.'</span><span>/</span><span>'.$img3.'</span>';
et
$img2=$detail;
$img3=$tableau[$i];
ça donne bien le chemin de l'image
Merci infiniment sipherion.C'était ça le problème.J'ai ajouté une requête pour avoir le texte contenu dans le champ Image et ça a marché.
$bdd= connexionBD();
$requete0 = $bdd->prepare("select Image from article where Image='".$detail.'/'.$tableau[$i]."' ;");
$image0 = $requete0->fetch();
$requete0->bindParam(":idV", $echo_reponses1);
$requete0->execute() or die(print_r($requete0->errorInfo()));
$detail0 = $requete0->fetchColumn();
$requete0->closeCursor();
$bdd= connexionBD();
$requete2 = $bdd->prepare("select NomArticle from article where Image = :idV ;");
$image2 = $requete2->fetch();
$requete2->bindParam(":idV", $detail0);
$requete2->execute() or die(print_r($requete2->errorInfo()));
$detail2 = $requete2->fetchColumn();
$requete2->closeCursor();
// pour chaque miniature, on affiche la miniature munie d'un lien vers la photo en taille réelle
echo '<td><a href="TESTT.PHP?&ctrligne='.$detail.'/'.$tableau[$i].'">
<img src="'.$detail.'/'.$tableau[$i].'" width="200" height="200" id="chemin" name="chemin" onchange="javascript:adresse();" alt="Image" />
</BR></BR><CENTER>'.$detail2.'</a></CENTER></BR></BR></td>';
merci encore pour le temps que t'as consacré pour résoudre mon problème.
$bdd= connexionBD();
$requete0 = $bdd->prepare("select Image from article where Image='".$detail.'/'.$tableau[$i]."' ;");
$image0 = $requete0->fetch();
$requete0->bindParam(":idV", $echo_reponses1);
$requete0->execute() or die(print_r($requete0->errorInfo()));
$detail0 = $requete0->fetchColumn();
$requete0->closeCursor();
$bdd= connexionBD();
$requete2 = $bdd->prepare("select NomArticle from article where Image = :idV ;");
$image2 = $requete2->fetch();
$requete2->bindParam(":idV", $detail0);
$requete2->execute() or die(print_r($requete2->errorInfo()));
$detail2 = $requete2->fetchColumn();
$requete2->closeCursor();
// pour chaque miniature, on affiche la miniature munie d'un lien vers la photo en taille réelle
echo '<td><a href="TESTT.PHP?&ctrligne='.$detail.'/'.$tableau[$i].'">
<img src="'.$detail.'/'.$tableau[$i].'" width="200" height="200" id="chemin" name="chemin" onchange="javascript:adresse();" alt="Image" />
</BR></BR><CENTER>'.$detail2.'</a></CENTER></BR></BR></td>';
merci encore pour le temps que t'as consacré pour résoudre mon problème.