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 :

Erreur dans ma requête SQL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 33
    Points : 22
    Points
    22
    Par défaut Erreur dans ma requête SQL
    Bonsoir,

    J'ai un petit problème avec une de mes requête SQL qui me renvoie des erreurs.

    Voici mes requêtes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    //Je récupère la référence de la commande qui correspond à l'utilisateur actuel et je stocke la valeur dans la variable $refcom
    $id_client = $_SESSION['id'];
    $req = $bdd->query('SELECT référence FROM commande WHERE id_client = ' . $id_client. " AND etat = 0 ");
    $refcom = $req->fetchColumn();
    {
        echo "<p>Ref. commande :" . $refcom . "</p>";
    }
    //Et la je veux récupérer l'id de tous les produits qui correspondent à la référence de commande passé dans la variable $refcom
    $req = $bdd->prepare('SELECT id_produit FROM association-produit-commande where ref_commande = ? ');
    $req->execute(array($refcom));
    ?>

    Et voici mes erreurs :

    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-produit-commande where ref_commande = '1'' at line 1' in C:\wamp\www\Siteweb\panier.php on line 88
    PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-produit-commande where ref_commande = '1'' at line 1 in C:\wamp\www\Siteweb\panier.php on line 88
    Call Stack
    Je ne vois pas d'ou ça vient puisque je teste ce que contient ma variable $refcom dans un echo et ça me retourne la bonne valeur.
    Mauvaise syntaxe sur ma requête j'imagine ?

    Merci

  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
    Utilise _ plutôt que - dans le nom de tes éléments.
    Sinon il faut les encadrer avec `
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `association-produit-commande`
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 33
    Points : 22
    Points
    22
    Par défaut
    Je viens finalement de trouver, c'était tout bête...

    J'ai rajouté " ` " autour du non de ma tablea qui est "association-produit-commande"

    Le bon code est donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      $req = $bdd->prepare('SELECT id_produit FROM `association-produit-commande` where ref_commande = ? ');
        $req->execute(array($refcom));
    Est ce que quelqu'un saurait m'expliquer pourquoi il faut rajouter ça alors que parfois je n'ai pas besoin avec d'autre nom de table il me semble ?
    Serait-ce les tirets "-" qui posent problème ?
    Merci

  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
    Je viens de te le dire.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 33
    Points : 22
    Points
    22
    Par défaut
    Effectivement je n'avais pas vu, merci

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

Discussions similaires

  1. [AC-2003] erreur dans une requête SQL
    Par sabredebois dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 25/12/2010, 19h57
  2. erreur dans une requête sql dans une fonction php
    Par frboyer dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2009, 13h37
  3. erreur dans votre requête SQL.Ponctuation invalide @ 48
    Par Artoisvert dans le forum Débuter
    Réponses: 0
    Dernier message: 11/07/2008, 02h12
  4. Erreur dans la requête SQL
    Par francommerce dans le forum ASP
    Réponses: 4
    Dernier message: 05/02/2008, 15h52
  5. [MySQL] Erreur dans une requête sql
    Par Goundy dans le forum PHP & Base de données
    Réponses: 37
    Dernier message: 30/01/2006, 16h08

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