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 :

résultat incohérent dans requète préparée [PDO]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 26
    Points : 30
    Points
    30
    Par défaut résultat incohérent dans requète préparée
    Bonjour à tous,

    J'ai un petit soucis avec une requête préparée qui me donne un résultat non conforme avec ce que j'attends alors que la même requête sous mysql fonctionne.

    j'ai trois tables liées qui me permettent de gérer les tailles des articles.

    voici ma requête :
    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
    <?php
    include ('../modele/connexion_db.php');
     
    $req = $bdd->prepare("SELECT tp.nomTaille AS ntp
        FROM ListeTailles AS lt
        INNER JOIN TaillesProduits AS tp
        ON lt.taille = tp.refTaille
        INNER JOIN FichesProduits AS fp
        ON lt.produit = fp.ID
        WHERE fp.ID = ?");
     
    $IDP2 = '7';
    $reqT->execute(array($IDP2));
    $Liste = $reqT->fetch();
    foreach($Liste as $Tailles)
             {
             echo $Tailles['ntp'];
             }
    ?>
    Je ne comprend pas mon erreur si cela est bien une erreur de ma part ou un bug de PDO...

    ou si quelqu'un à une solution alternative je suis preneur.

    Merci de votre aide.

  2. #2
    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
    Qu'obtiens-tu ? Que souhaites-tu obtenir ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 26
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Qu'obtiens-tu ? Que souhaites-tu obtenir ?

    Voici le résultat que m'affiche la requête dans phpmyAdmin et qui est le bon résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     ntp 	
    6 mois
    1 an
    18 mois
    et voici le résultat de ma requête préparée :

    et si je fais un var_dump de ma variable, j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string(6) "6 mois" string(6) "6 mois"

  4. #4
    Invité
    Invité(e)
    Par défaut
    Ton erreur se situe dans la recuperation des donnees. Tu utilises fetch() qui ne retourne que le premier resultat de ta requete. Ce que tu cherches a faire c'est fetchAll().

    Alternativement tu peux utiliser fetch() mais dans une boucle while, comme ceci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $reqT->execute(array($IDP2));
    while ($Tailles = $reqT->fetch()) {
      echo $Tailles['ntp'];
    }

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 26
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par Mrsky Voir le message
    Ton erreur se situe dans la recuperation des donnees. Tu utilises fetch() qui ne retourne que le premier resultat de ta requete. Ce que tu cherches a faire c'est fetchAll().

    Alternativement tu peux utiliser fetch() mais dans une boucle while, comme ceci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $reqT->execute(array($IDP2));
    while ($Tailles = $reqT->fetch()) {
      echo $Tailles['ntp'];
    }
    Je te remercie de l'info, c'est ce que je venais de voir aussi. comme quoi quand on a le nez dedans, on ne voit pas tout.

    Merci encore pour l'aide.

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

Discussions similaires

  1. [PDO] échappement dans requête préparée
    Par andaman dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 14/12/2013, 21h59
  2. [MySQL] Résultat d'une requête préparée dans tableau html
    Par Ether.Kurios dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/05/2011, 13h14
  3. [MySQL] Erreur dans requête préparée
    Par skandaboy dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/01/2011, 12h33
  4. [PDO] LIKE dans requête préparée
    Par ddelec24 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/11/2008, 13h05
  5. [SQL] Problème résultat checkbox dans requête SQL
    Par Skeud007 dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 02/07/2006, 15h02

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