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 :

Unknown column '2a35de2ef7fb5b4f78c27a25c7a7388f' in 'where clause'


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 204
    Points : 79
    Points
    79
    Par défaut Unknown column '2a35de2ef7fb5b4f78c27a25c7a7388f' in 'where clause'
    Bonjour,
    Je ne comprends vraiment plus rien sur une requête qui m'affiche ceci :
    Unknown column '2a35de2ef7fb5b4f78c27a25c7a7388f' in 'where clause'
    En effet 2a35de2ef7fb5b4f78c27a25c7a7388f est la valeur du paramètre $param récupérée par $_GET['PARAM'] et utilisée dans la requête.
    Voilà une partie du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $param=$_GET['PARAM'];
    $tab='table_mbr';
    $SQL_CON="Select Id_news, Civilite_news, Nom_news, Prenom_news, Pays_news, Ville_news, Email_news FROM $tab WHERE Confirme_news='NON'  AND Hash_mail_news = '".$param."' ";
    $res=mysql_query($SQL_CON) or die (mysql_error());
    $lnbr=mysql_num_rows($res);
    .....
    J'ai fait un
    qui m'a donné ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Select Id_news, Civilite_news, Nom_news, Prenom_news, Pays_news, Ville_news, Email_news FROM table_mbr WHERE Confirme_news='NON' AND Hash_mail_news = '2a35de2ef7fb5b4f78c27a25c7a7388f'
    J'ai copié cette requête sql affichée et je l'ai exécuté dans phpMyAdmin où j'ai bien un résultat avec les valeurs de la base.

    Je ne comprends vraiment pas pourquoi j'ai cette erreur ? pourtant j'ai utilisé toutes les façons d'utilisation des côtes pour ce paramêtre !

    Cette colonne est de type varchar, aucune autre colonne ne porte son nom dans la base.

    Je vous remercie 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
    L'extension mysql est obsolète. Protège au moins tes paramètres externes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $param=mysql_real_escape_string($_GET['PARAM']);
    Sur le fond du problème, es-tu sûr que c'est cette requête qui génère l'erreur ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 204
    Points : 79
    Points
    79
    Par défaut
    Merci de votre réponse !
    j'ai protégé le paramètre extérieur.
    En effet, c'est la seule requête que je fais dans mon application. Et vraiment je ne comprends pas pourquoi cette erreur !!

  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
    Essaie de resaisir tes '

    Eventuellement inverse ' et " pour voir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $SQL_CON='Select Id_news, Civilite_news, Nom_news, Prenom_news, Pays_news, Ville_news, Email_news FROM ' . $tab . ' WHERE Confirme_news="NON"  AND Hash_mail_news = "'. $param.'"';
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 204
    Points : 79
    Points
    79
    Par défaut
    Merci !
    Comme je vous l'avais dit, j'ai tout essayé et d'ailleurs j'ai utilisé votre requête qui me donne la même erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Unknown column '2a35de2ef7fb5b4f78c27a25c7a7388f' in 'where clause'
    Je suis stupéfait !!

  6. #6
    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
    Si tu mets un entier ça donne quoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $SQL_CON="Select Id_news FROM $tab WHERE Confirme_news='NON'  AND Hash_mail_news = 1";
    Sinon tu peux nous joindre le fichier php et un dump de la table ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 204
    Points : 79
    Points
    79
    Par défaut
    J'ai fait à ce que quand il n'y a pas d'enregistrement je suis redirigé vers une page d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if($lnbr<1){
    	//--le paramètre correspondant à cet Id_news n'existe pas ==> Redirection
    	header("location:../messages/message-NWSLTRKOID.html");
        exit();
    Cette requête me renvoie vers la page d'erreur. Ce qui veut dire que la requête a marché !!
    Donc il n'y a pas d'erreur lorsque la valeur de la colonne est un entier !!! c'est bizarre ! D'où peut provenir cela, d'autant plus que la colonne est de type varchar !!

  8. #8
    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
    Sinon tu peux nous joindre le fichier php et un dump de la table ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 204
    Points : 79
    Points
    79
    Par défaut
    comment je vous l'envoie ?

  10. #10
    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
    Ici en pièce jointe du message
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 204
    Points : 79
    Points
    79
    Par défaut
    Merci,
    Je vous les envoie en pièces jointes.
    Encore merci de votre aide
    Fichiers attachés Fichiers attachés

  12. #12
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Dans cette requête (ligne 53 de ton fichier php en PJ dans le message précédent) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $SQL_UPDATE="UPDATE $tab
            SET
            Confirme_news = 'OUI'
            where Id_news=$param";
            $monresult=@mysql_query($SQL_UPDATE) or die (mysql_error());
    Quel est le type du champ Id_News ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  13. #13
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    je viens de tester en local avec la table que tu donnes, et le script :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $param=mysql_real_escape_string($_GET['PARAM']);
     
    $tab='news_letter';
    $SQL_CON="Select Id_news, Civilite_news, Nom_news, Prenom_news, Pays_news, Ville_news, Email_news FROM $tab WHERE Confirme_news='NON'  AND Hash_mail_news = '$param' "; 
     
    $res=mysql_query($SQL_CON) or die (mysql_error());
    $lnbr=mysql_num_rows($res);
    echo $lnbr;
    ?>
    Aucune erreur.

    [EDIT] Celira a mis le doigt sur l'ERREUR !
    C'est bien cette requête qui ne fonctionne pas :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $SQL_UPDATE="UPDATE $tab
            SET
            Confirme_news = 'OUI'
            where Id_news=$param";

    Sans les '...', la requête compare 2 colonnes : équivalent à "WHERE colonne1 = colonne2".
    (et ce n'est pas le champ "Id_news" mais "Hash_mail_news")

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $SQL_UPDATE="UPDATE $tab
            SET
            Confirme_news = 'OUI'
            where Hash_mail_news = '$param' ";
    Dernière modification par Invité ; 03/10/2016 à 11h16.

  14. #14
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Celira a mis le doigt sur l'ERREUR !

    En fait, il faut prendre le problème à l'envers. Au lieu de "Pourquoi ai-je une erreur dans cette requête alors qu'elle fonctionne bien dans PhyMyAdmin ?", il faut penser "J'ai une erreur dans une requête. Comme la requête de sélection fonctionne dans PhpMyAdmin, c'est probablement qu'il y a une autre requête qui plante ailleurs dans le script."
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  15. #15
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par opeo Voir le message
    En effet, c'est la seule requête que je fais dans mon application...
    Encore fallait-il ne pas se fier aux fausses vérités !

    Il ne faut faire confiance à PERSONNE !
    Ni au GET, ni au POST, ni... au codeur lui-même !


    "La vérité est tailleur"
    Karl Lagerfeld

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 204
    Points : 79
    Points
    79
    Par défaut
    Félicitation à vous et merci beaucoup.
    Effectivement il me fallait regarder la requête plus bas. Je n'affectais pas la bonne valeur à Id_news qui est un entier !!!
    Merci beaucoup.

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

Discussions similaires

  1. unknown column'a'in where clause
    Par WALAA dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/04/2010, 20h54
  2. erreur : #1054 - Unknown column 'Martin' in 'where clause'
    Par éric1 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/08/2009, 15h29
  3. 1054 - Unknown column 'language_id' in 'where clause'
    Par Tonio_17000 dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/06/2009, 22h01
  4. [MySQL] unknown column "motClef" in WHERE clause
    Par JackBeauregard dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 11/09/2007, 17h15
  5. Unknown column 'xx' in 'where clause'
    Par SaeZ dans le forum Requêtes
    Réponses: 3
    Dernier message: 30/05/2006, 17h25

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