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 sql avec WHERE en PHP


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    novembre 2012
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : novembre 2012
    Messages : 64
    Points : 46
    Points
    46
    Par défaut requête sql avec WHERE en PHP
    Bonjour,
    Je coince complètement depuis un bon bout de temps et n'arrive pas à trouver la solution. Quelqu'un peut-il m'aider svp ?
    Je n'ai pas trouvé d'explications convaincantes sur les forums.
    Je pose mon problème . Je pense que c'est la clause WHERE qui n'est pas correcte ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $nom = "TOTO"
    $prenom = "Louis"
    $reponse = $bdd->query("SELECT * FROM identite WHERE Nom = $nom AND Prenom = $prenom ");
    J'ai tout essayé : double quote, simple quote, dans tous les cas je reçois la réponse
    Fatal error: Uncaught PDOException: SQLSTATE[42S22]: Column not found:
    Merci de bien vouloir m'expliquer svp.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    novembre 2012
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : novembre 2012
    Messages : 355
    Points : 930
    Points
    930
    Par défaut
    Bonjour,

    Vu l'erreur ' Column not found', il manque soit le champ Nom soit le champ Prenom (ou les deux) dans la table identite.

  3. #3
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    novembre 2012
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : novembre 2012
    Messages : 64
    Points : 46
    Points
    46
    Par défaut
    Et bien non, mes champs Nom et Prenom existent bien.
    La preuve ? Si je fais la requête suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reponse = $bdd->query("SELECT * FROM identite WHERE Nom = "TOTO" AND Prenom = "Louis" ");
    Ça marche nickel. C'est donc dans l'interprétation des variables qu'il y a un problème, mais je ne comprends pas.

  4. #4
    Membre habitué
    Homme Profil pro
    Autre
    Inscrit en
    juillet 2021
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : juillet 2021
    Messages : 68
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    Ton dernier exemple ne peut pas fonctionner, celui-ci déclenche une erreur de syntaxe à cause d'une utilisation incorrecte des quotes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $bdd->query('SELECT * FROM identite WHERE Nom = "TOTO" AND Prenom = "Louis"');
    // ou
    $bdd->query("SELECT * FROM identite WHERE Nom = 'TOTO' AND Prenom = 'Louis'");
    Si tu utilises PDO, tu peux éventuellement concaténer les paramètres avec la méthode quote (ou avec real_escape_string si tu utilises mysqli) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bdd->query('SELECT * FROM identite WHERE Nom = ' . $bdd->quote($nom) . ' AND Prenom = ' . $bdd->quote($prenom));
    L'idéal serait plutôt d'utiliser une requête préparée : https://www.php.net/manual/fr/pdo.prepare.php

  5. #5
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    mars 2005
    Messages
    4 221
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mars 2005
    Messages : 4 221
    Points : 6 155
    Points
    6 155
    Billets dans le blog
    4
    Par défaut
    Affiche ta requête pour mieux comprendre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = "SELECT * FROM identite WHERE Nom = $nom AND Prenom = $prenom ";
    echo $sql;
    $reponse = $bdd->query($sql);
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  6. #6
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    novembre 2012
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : novembre 2012
    Messages : 64
    Points : 46
    Points
    46
    Par défaut
    Merci pour ta réponse.
    Je te tiendrai au courant dans quelque temps, je dois m'absenter qq jours.

  7. #7
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    novembre 2012
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : novembre 2012
    Messages : 64
    Points : 46
    Points
    46
    Par défaut
    Merci à tous et particulièrement à Séb. qui m'a ouvert les yeux en me faisant écrire la requête.
    Tout simplement mes variables ont toutes un espace blanc en début d'écriture. Il a suffit d'un trim(variable) pour le supprimer et tout a marché.
    Pendant ce temps-là je m'excitais sur les quotes et double quotes !... Erreur.

    Sujet résolu.
    Merci à tous.

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

Discussions similaires

  1. Requête SQL avec REGEXP en PHP
    Par EkrazNeophite dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 31/03/2015, 00h21
  2. ma Requête SQL avec WHERE me demande un parametre
    Par symbabeauchat dans le forum IHM
    Réponses: 3
    Dernier message: 13/08/2011, 10h53
  3. Exécuter des requête SQL (avec ou sans PHP) dans javascript
    Par mir540 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/11/2009, 10h03
  4. Requête sql avec where
    Par sondo dans le forum WinDev
    Réponses: 6
    Dernier message: 23/04/2008, 13h47
  5. [SQL] Comparer résultat d'une requête Sql avec php
    Par nicoxweb dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/09/2007, 22h46

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