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 :

Valeur retournée par mysql_query [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 60
    Par défaut Valeur retournée par mysql_query
    Bonjour,

    J'ai un souci sur quelque chose de basique que je ne comprends pas...ça semble tout bête mais je ne vois pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $requet = "SELECT * FROM `users`";
    if($result = mysql_query($requet)) 
    {
      echo "true"."<br />";
    } else {
      echo "false"."<br />";
    }
    Il n'y a rien de franchement original, c'est du code de base...ce que je ne comprends pas c'est que cela m'affiche toujours "true" même quand la table de valeur est vide où quand je mets une condition "where" bidon qui fait qu'il ne peut pas y avoir de résultat qui corresponde, donc il ne devrait pas entrer dans la condition et aller direct dans le else ce qu'il ne fait pas...

    Et quand j'affiche le contenu de result via un "echo", il m'affiche ceci au lieu de false...

    Resource id #34

    Je précise que j'ai mis ce bout de code de test en tout tout début après le mysql_connect pour l'isoler, donc il n'est pas dans une requête parente. J'ai vérifié mon fichier de config pour vérifié que je testais la bonne base de données mais c'est correct, je peux recuperer des valeurs de la table et les afficher sans probleme mais la condition if d'existence ne fonctionne pas...

    J'ai tenté d'autres dérivés du style comme indiqué ici ( http://php.net/manual/en/function.mysql-query.php )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $requet = "SELECT * FROM `users`";
    $result = mysql_query($requet)
    if(!$result) 
    {
      echo "false"."<br />";
    } else {
      echo "true"."<br />";
    }
    J'ai aussi tenté de mettre le 2eme argument facultatif de connexion de la fonction mysql_query($requet,$id_connexion) mais ça mène toujours au même résultat, il me dit toujours qu'il trouve quelquechose dans la table alors que quand je lui demande d'afficher quelquechose, la variable est vide ce qui est normal vu qu'il n'y a pas de résultats ou que que la table est vide.

    J'ai fait un copier coller d'un exemple de tutorial trouvé ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $requet = "SELECT * FROM users";
    if($result = mysql_query($requet)) {
    while($ligne = mysql_fetch_object($result)) {
    $id = $ligne->id;
    $name = $ligne->name;
    $address = $ligne->address;
    echo "$id - $name, $address <br />";
    }
    } else {
    echo ‘’Erreur de requête de base de données.’’;
    }
    et idem...je ne vois pas, il ne veut pas entrer dans le else... ça doit être quelque chose de gros comme une maison qui fait que je tourne autour du pot et que je ne vois pas...car il me semble que je l'ai déja utilisé un bon nombre de fois et que ça marchait...

    Une idée !? Merci d'avance.

  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
    Par défaut
    mysql_query renvoit FALSE quand il y a une erreur ; une requête sans résultat n'est pas une erreur et tu recevras quand même une ressource.

    Tu peux utiliser mysql_num_rows() pour savoir si une requête a renvoyé des ligneS.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 60
    Par défaut
    Oki, je m'étais persuadé que c'était quand il ne retournait pas de lignes...

    D'après la doc :

    La requête suivante est syntaxiquement invalide, donc mysql_query() va échouer et retourner FALSE.
    j'en avais déduit par déduction à tord que le fait de ne pas retourner de lignes était aussi une erreur...problème d'interprétation du texte pour ma part.

    En tout cas merci, je tournais en rond depuis des heures dessus.

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

Discussions similaires

  1. comment comparer les valeurs retournés par DBGrid
    Par Ice-tea dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/06/2006, 14h42
  2. Réponses: 1
    Dernier message: 22/05/2006, 11h27
  3. [SQL] Valeur retournée par une requête...
    Par Empty_body dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/01/2006, 22h13
  4. VB6 --> Valeurs retournées par une comboBox
    Par the java lover dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/12/2005, 16h26
  5. valeur retournée par un .js
    Par astrofiles dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/08/2005, 10h20

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