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 retourne un résultat vide dans PHP, OK dans PhpMyAdmin [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    juillet 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : juillet 2006
    Messages : 78
    Points : 50
    Points
    50
    Par défaut Requête retourne un résultat vide dans PHP, OK dans PhpMyAdmin
    Bonjour à tous,

    je deviens chèvre là...

    Problème rencontré sur une requête de panier, toute simple, je récupère les id des produits dans le panier du client $id_client, pour construire le tableau de récap de sa commande.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sql_get_ids = "SELECT product_id FROM basket WHERE id_client='$id_client'";
    echo "<!-- requete : $sql_get_ids -->\n";
    $req_get_ids = mysql_query($sql_get_ids) or die(mysql_error());
    $nb_lines=mysql_numrows($req_get_ids);
    echo "<!-- La requete retourne $nb_lines lignes -->\n";
    J'ai mis des commentaires dans mon code afin d'en savoir plus sur ce qui se passe.

    Quand je récupère ma requête, elle me parait tout à fait normale, je la teste via PhpMyAdmin, elle me sort les bons résultats, j'ai la liste des id des produits que le client considéré a choisis.

    Quand elle est exécutée dans le code, elle retourne 0 lignes.

    Cette requête est au sein d'un fichier php que j'inclue sur 2 pages différentes, afin d'afficher mon tableau de récap sur ces 2 pages. Sur l'une pas de problème le résultat est bon, sur l'autre il est vide, la requête est identique des 2 côtés et fonctionne sur PhpMyAdmin.

    Logiquement je compare mes 2 pages appelantes, pour voir qu'est-ce qui pourrait faire que ma requête renvoie un résultat vide d'un côté, plein de l'autre.

    J'ai vérifié qu'il n'y avait pas d'autres requêtes précédentes avec le même nom mais retournant un résultat vide.

    exemple de requête récupérée dans mes commentaires (ou avec un var_dump) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT product_id FROM basket WHERE id_client='486272352300'
    Je sèche là...

    J'ai vu de nombreux sujets avec ce genre d'erreur, mais c'était lié à chaque vois au codage des caractères, là il n'y a pas de problème de ce genre, l'id client est un chiffre. Et surtout ma requête passe bien sur une page et pas l'autre.

    Si quelqu'un a une idée... souvent le simple fait de poser ma question clairement ici me permet de trouver l'erreur, avant même d'envoyer mon sujet mais cette fois-ci non.

    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 : 43 410
    Points
    43 410
    Par défaut
    Il y a peut être un caractère invisible dans $id_client.

    Fais un
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2009
    Messages : 149
    Points : 80
    Points
    80
    Par défaut
    Et non
    Ok c'est un alias mais peut-être que cela peut faire une différence...

    Sinon d'accord avec sabotage.

  4. #4
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    juillet 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : juillet 2006
    Messages : 78
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Il y a peut être un caractère invisible dans $id_client.
    pas bête je n'y avais pas pensé

    hélas : float(486272352300) donc tout est normal là aussi.
    Citation Envoyé par Friksstyle Voir le message
    oups merci, ça ne change rien au schmilblick par contre, de toute façon je n'utilisais ce numrows que pour obtenir des infos dans les commentaires sur le retour de ma requête (il ne conditionnait pas, par exemple, le bouclage sur le résultat de ma requête)

  5. #5
    Membre averti Avatar de toutgrego
    Homme Profil pro
    Développeur Java
    Inscrit en
    mai 2013
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2013
    Messages : 217
    Points : 350
    Points
    350
    Par défaut
    Quand tu mets ça :
    Citation Envoyé par Lomic Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT product_id FROM basket WHERE id_client='486272352300'
    Dans PhpMyAdmin il te retourne des lignes ?
    F*ck it ! Do it !

  6. #6
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    juillet 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : juillet 2006
    Messages : 78
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par toutgrego Voir le message
    Dans PhpMyAdmin il te retourne des lignes ?
    oui quand je dump ma requête ou que je prend ce qui apparaît dans mes comms j'ai de bons résultats sous phpmyadmin

    et quand j'appelle cette page (qui affiche un tableau récap du contenu du panier) depuis une autre page, mon résultat de requête n'est pas vide et j'ai bien le bon contenu, et c'est bien la même requête qui est appelée, quelle que soit page qui inclue au départ cette portion de code

  7. #7
    Membre averti Avatar de toutgrego
    Homme Profil pro
    Développeur Java
    Inscrit en
    mai 2013
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2013
    Messages : 217
    Points : 350
    Points
    350
    Par défaut
    Question idiote mais : t'es connecté à la bonne bdd ? x)
    F*ck it ! Do it !

  8. #8
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    juillet 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : juillet 2006
    Messages : 78
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par toutgrego Voir le message
    Question idiote mais : t'es connecté à la bonne bdd ? x)
    oui... y'en a qu'une et le connecteur est unique, toutes les requêtes s'adressent à la même base

  9. #9
    Membre averti Avatar de toutgrego
    Homme Profil pro
    Développeur Java
    Inscrit en
    mai 2013
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2013
    Messages : 217
    Points : 350
    Points
    350
    Par défaut
    id_client c'est un entier ?

    Essaye ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql_get_ids = "SELECT product_id FROM basket WHERE id_client=".$id_client;
    F*ck it ! Do it !

  10. #10
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    juillet 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : juillet 2006
    Messages : 78
    Points : 50
    Points
    50
    Par défaut
    oui c'est un entier, et cette même requête identique passe très bien depuis une autre page, donc je ne pense pas que le problème vienne de là, j'utilise cette syntaxe pour toutes mes requêtes depuis des années et ça n'a jamais posé problème

    ça vient d'ailleurs que la requête en elle même

    j'ai essayé pour voir de mettre une copie de cette requête directement dans la page appelante A (et non par un include du code contenant la requête), le résultat est le même, elle revient vide

    alors qu'appelée depuis la page B (via un include), pas de problème, le résultat rapporté est bon

    j'ai comparé x fois ce qu'il peut y avoir avant dans la page A et la page B pour voir ce qui pourrait expliquer cette différence, sans trouver d'explication pour le moment

  11. #11
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    juillet 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : juillet 2006
    Messages : 78
    Points : 50
    Points
    50
    Par défaut
    bon... j'ai fait disparaître mon problème en décalant l'inclusion un peu plus bas

    je n'y comprend rien car il y a toujours les mêmes sources de problème potentiel en amont, et en plus quelques lignes de code entre les deux maintenant

    mais ça fonctionne alors...

    merci d'avoir essayé de m'aider

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/05/2011, 14h33
  2. Tester si une requête retourne des résultats
    Par nono27200 dans le forum Sql*Plus
    Réponses: 1
    Dernier message: 10/11/2008, 21h32
  3. Comment savoir si une requête retourne un résultat
    Par tomy29 dans le forum Hibernate
    Réponses: 2
    Dernier message: 06/11/2008, 10h18
  4. Requete NOT EXISTS retournant un résultat vide
    Par uptoditime dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 04/12/2007, 18h08
  5. Savoir si une requête retourne un résultat ou pas
    Par zut94 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/09/2005, 15h48

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