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 :

problème variable dans requête select pdo


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Points : 4
    Points
    4
    Par défaut problème variable dans requête select pdo
    Bonjour,

    ça fait plus d'une semaine qu'un bout de code me pose problème:
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    echo '<table>';
    	for ($i=0; $i<$nbpics; $i++){
     
     
    	$img2=$detail;
    	$img3=$tableau[$i];
     
    	$echo_reponses ='<span>'.$img2.'</span><span>/</span><span>'.$img3.'</span>';
     
     
    	$requete2 = $bdd->prepare("select NomArticle from article where Image='.$echo_reponses.';");
    	 $image2 = $requete2->fetch();
     
     
     
     
     
        $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> a['.$i.']='.$detail2.'</a></CENTER></BR></BR></td>';
     
    	if($i%$nbcol==($nbcol-1)) echo '</tr>';
     
     
    	}
    	echo '</table>';
     
     
    }

    Je vous donne le code entier:
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
     
    <?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 (Exception $ex) {
            die('<br />Pb connexion serveur BD : ' . $ex->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>';
     
     
    	$requete2 = $bdd->prepare("select NomArticle from article where Image='.$echo_reponses.';");
    	 $image2 = $requete2->fetch();
     
     
     
     
     
        $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> 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';
     
    }
     
    ?>
    Je voudrais afficher une galerie d'image avec le Nom de l'article en dessous de chaque image.
    J'arrive à afficher la galerie mais sans le nom de l'article sous les images.

    Merci d'avance.

  2. #2
    Membre à l'essai Avatar de aahmedayed
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 9
    Points : 13
    Points
    13
    Par défaut
    Bonjours,
    il faut nettoyer votre code en supprimant les points , la points doivent être après les guillemets et remplace votre code par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $req='select NomArticle FROM article WHERE Image= :echo_reponses';
    $requete2 = $bdd->prepare($req);
    $requete2->bindValue(':echo_reponses',$echo_reponses);
    $requete2->execute();
    	 $image2 = $requete2->fetch();
    Donc from doit etre en majuscule where aussi lit bien les modifications que j'ai mis tu vas comprendre tes erreurs
    bonne journée

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Merci aahmedayed d'avoir répondu à ma question.

    Malheureusement je viens de tester ton code mais ça marche tjrs pas (j'ai déja testé un code similaire après avoir cherché sur tt ce qui est PDO. D’aprés ce que j ai trouvé on emploie ":variable bindValue(':echo_reponses',$echo_reponses);" lorsqu'on a une variable qu'on fait entrer depuis une interface mais dans mon cas la variable est prédefinie au niveau de select . ).

    Lorsque je mets le nom de l image à la place de $echo_reponses ça marche.
    Besoin encore de votre aide

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux nous montrer ton code avec les corrections indiqués par aahmedayed ?

  5. #5
    Membre à l'essai Avatar de aahmedayed
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 9
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par solara Voir le message
    Bonjour,

    ça fait plus d'une semaine qu'un bout de code me pose problème:
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    echo '<table>';
    	for ($i=0; $i<$nbpics; $i++){
     
     
    	$img2=$detail;
    	$img3=$tableau[$i];
     
    	$echo_reponses ='<span>'.$img2.'</span><span>/</span><span>'.$img3.'</span>';
     
     
    	$requete2 = $bdd->prepare("select NomArticle from article where Image='.$echo_reponses.';");
    	 $image2 = $requete2->fetch();
     
     
     
     
     
        $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> a['.$i.']='.$detail2.'</a></CENTER></BR></BR></td>';
     
    	if($i%$nbcol==($nbcol-1)) echo '</tr>';
     
     
    	}
    	echo '</table>';
     
     
    }

    Je vous donne le code entier:
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
     
    <?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 (Exception $ex) {
            die('<br />Pb connexion serveur BD : ' . $ex->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>';
     
     
    	$requete2 = $bdd->prepare("select NomArticle from article where Image='.$echo_reponses.';");
    	 $image2 = $requete2->fetch();
     
     
     
     
     
        $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> 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';
     
    }
     
    ?>
    Je voudrais afficher une galerie d'image avec le Nom de l'article en dessous de chaque image.
    J'arrive à afficher la galerie mais sans le nom de l'article sous les images.

    Merci d'avance.
    Je vous aide avec plaisir et on va trouver le problème. donc ce que tu doit faire c'est de verifier avec les autre requetes, surtt celle qui prend l'id de votre fournisseur , car ce que vous avez codé j'ai compris la logique mais jai pas encore appris l'orienté objet donc peut etre l'erreur et laba, et aussi t'as utilisé une function , moi personnellemnt j'utilise pas trop les fonctions avec php j'utilise plus les $_SESSION c'est mieu et c'est plus sécurisé .
    ET dite moi les nouvelles SVP.
    BONNE CHANCE

Discussions similaires

  1. [AC-2003] Utiliser variable dans requête Select [VBA]
    Par jacda dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 12/11/2009, 16h26
  2. Problème de variables dans requête DBCC DBREINDEX
    Par mary27 dans le forum Développement
    Réponses: 3
    Dernier message: 04/09/2009, 12h40
  3. Problème variable dans requête SELECT
    Par mary27 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 15/06/2009, 18h43
  4. Problême d'insertion de variable dans requête
    Par CyberMen dans le forum VBA Access
    Réponses: 1
    Dernier message: 29/07/2008, 14h27
  5. Problème Variable dans requête SQL
    Par maxime350 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 10/04/2008, 20h55

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