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 :

Requête imbriquée dans une boucle - PDOException' with message 'SQLSTATE[42000] [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 55
    Points : 34
    Points
    34
    Par défaut Requête imbriquée dans une boucle - PDOException' with message 'SQLSTATE[42000]
    Bonjour à tous,

    J'essaie de créer une sous-requête SQL au sein d'une boucle "while" d'une requête SQL principale. Je sais qu'il ne faut pas trop procéder comme ça mais je n'ai pas trouvé d'autres solutions.

    Ma sous-requête se présente sous cette forme :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $reponse2 = $bdd->prepare("SELECT * FROM table1 WHERE nom_colonne1 = $variable_reponse1");	
    $reponse2->execute();
    while ($donnees2 = $reponse2->fetch()){
    $var1 = $donnees2["nom_colonne2"];
    $var2 = $donnees2["nom_colonne3"];
    }

    La variable $variable_reponse1 provient de la requête SQL principale dans laquelle est imbriquée cette sous-requête.
    Dans le principe, la requête principale me liste des données contenues dans une table historique. Lors de la boucle "while" qui va afficher ces résultats, j'interroge une autre table matériel pour définir pour chaque ligne de l'historique, à quel matériel est lié la ligne qui sera affichée. Le lien entre ces deux tables peut uniquement être fait par un code unique matériel qui n’apparaît qu'une fois dans la table matériel mais plusieurs fois dans la table historique.

    Quand j'exécute mon code, j'ai l'erreur suivante : "Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax;".

    En espérant que ce soit assez clair.
    Merci pour votre aide.
    @+

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Quel est le type de la colonne 'nom_colonne1'. Si c'est de type caractére, il manque des guillemets simples autour de la valeur $variable_reponse1

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 55
    Points : 34
    Points
    34
    Par défaut
    C'est exactement la cause de mon problème, cette colonne était de type "caractères". Un grand merci pour votre aide.

  4. #4
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Salut,
    il y a une mauvaise utilisation de la requête préparée , on ne met pas de variable dans la requête. http://php.net/manual/fr/pdo.prepare.php
    Le bienfait n'est jamais perdu

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

Discussions similaires

  1. optimiser une boucle while imbriquer dans une boucle for
    Par bakaratoun dans le forum MATLAB
    Réponses: 0
    Dernier message: 28/01/2010, 15h35
  2. Problème de requête SQL dans une boucle While
    Par Astraya dans le forum VB.NET
    Réponses: 3
    Dernier message: 21/01/2009, 17h18
  3. [MySQL] Exécuter une requête UPDATE dans une boucle
    Par vacknov dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 24/10/2008, 17h46
  4. Requête imbriquée dans une même table
    Par casavba dans le forum Langage SQL
    Réponses: 3
    Dernier message: 09/01/2008, 21h02
  5. requête imbriquée dans une vue SQL
    Par captainamerica75 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/05/2007, 14h39

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