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

SQL Procédural MySQL Discussion :

[PHP] Warning : supplied argument is not a valid MySQL result resource


Sujet :

SQL Procédural MySQL

  1. #1
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut [PHP] Warning : supplied argument is not a valid MySQL result resource
    lors de l'execution du script suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?
    $serveur = mysql_connect("nom de serveur","bd","mot de passe");
    if (!$serveur) 
    {
    die('Non connecté : ' . mysql_error());
    } 
    else echo"connecté<br>";
     
    $db_exemple1 = mysql_select_db('bd', $serveur);
    if (!$db_exemple1) 
    {
    die ('Impossible d\'utiliser la base : ' . mysql_error());
    }
    else echo"utilisation de la base de données amorcée<br>";
     
    $query = "INSERT INTO khadimate(nom,prenom) VALUES('patatte','pattateos')"; 
    $result = mysql_query($query); 
     
    $nb = mysql_numrows($result); //Nombre d'enregistrements
     
    while ($enregistrement = mysql_fetch_array($result))
    {
    $nom = $enregistrement["nom"]; 
    $prenom = $enregistrement["prenom"]; 
     
    echo "Nom : $prenom $nom";
    }
    ?>
    j'ai des warnings concernant la variable $result au niveau des lignes 19:
    $nb = mysql_numrows($result); //Nombre d'enregistrements

    et 21:
    while ($enregistrement = mysql_fetch_array($result))

    avec les warnings suivants:
    Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /www/sites/1/ifrance.com/k/h/khadimatewebmaster/site/all.php3 on line 19

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /www/sites/1/ifrance.com/k/h/khadimatewebmaster/site/all.php3 on line 21

    merci pour toutes vos contributions

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    depuis quand est-ce que les requête INSERT renvoyent des données ?

  3. #3
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    ??? INSERT est entre ""...elle ne renvoit rien du tt

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Citation Envoyé par jadey
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $query = "INSERT INTO khadimate(nom,prenom) VALUES('patatte','pattateos')"; 
    $result = mysql_query($query); 
     
    $nb = mysql_numrows($result); //Nombre d'enregistrements
     
    while ($enregistrement = mysql_fetch_array($result))
    tu essaies de récupérer le résultat d'un requête de type INSERT... ces requêtes ne renvoient aucune données puisque leur rôle est d'insérer des données dans ta BDD...

    si tu veux récupérer des données, il te faut utiliser un SELECT...

    donc : Que t'attends-tu à recevoir ici ?

  5. #5
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    tu essaies de récupérer le résultat d'un requête de type INSERT... ces requêtes ne renvoient aucune données puisque leur rôle est d'insérer des données dans ta BDD...
    tu parles de la 1ere ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "INSERT INTO khadimate(nom,prenom) VALUES('patatte','pattateos')";
    ???
    si c'est le cas regarde bien la requete est entre côtes ce qui en fait une chaine de caractères...dont j'affecte la variable $query...

  6. #6
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    OUI, mais ensuite tu exécute la requête (avec mysql_query) puis tu récupères la ressource résultat ($result) et tu exécutes ensuite des fonctions de récupération de donnée sur cette ressource (mysql_num_rows et mysql_fetch_array)

    est-ce que c'est toi qui a écrit ce code ? tu es conscient de ce qu'il fait au niveau de la bdd ? parce qu'on dirait que tu as copié un code sans chercher à comprendre ce qu'il faisait...

  7. #7
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    OUI, mais ensuite tu exécute la requête (avec mysql_query) puis tu récupères la ressource résultat ($result) et tu exécutes ensuite des fonctions de récupération de donnée sur cette ressource (mysql_num_rows et mysql_fetch_array)
    jusque la rien d'incorrect...je recupere le nombre d'enregistrement pour ne pas boucler infiniment puis un recordset dont j'essai d'afficher les attributs (ça me fais penser que j'aurais mieux fait d'utiliser mysql_fetch_object()) mais je ne pige tjrs pas ce qui cloche avec $result ????

  8. #8
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    ton $result proviens de l'exécution d'une requête de type INSERT, ces requêtes ne sont pas censées renvoyer de données...

  9. #9
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    ok donc la fonction mysql_query() ne renvoi pas une donnée de type ressource ???

    d'accord, par quoi donc suis-je supposé affecter $result?

  10. #10
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    si mysql_query renvoie une donnée de type ressources, mais les requêtes de type INSERT ne renvoient pas de données... tu ne peux utiliser mysql_num_rows et mysql_fetch_array que si la ressource désigne effectivement des données, ici ce n'est pas le cas parce que tu utilises une requête d'insertion, et pas une requête de selection...

    Encore une fois que t'attends-tu à recevoir comme resultats de cette requête ?

  11. #11
    Membre éprouvé
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Points : 984
    Points
    984
    Par défaut
    Salut

    Pour les requêtes du type SELECT, SHOW, DESCRIBE ou EXPLAIN, mysql_query() retournera une ressource en cas de succès, ou FALSE en cas d'erreur.

    Pour les autres types de requêtes, UPDATE, DELETE, DROP, etc., mysql_query() retourne TRUE en cas de succès ou FALSE en cas d'erreur.
    http://be2.php.net/manual/fr/function.mysql-query.php

  12. #12
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    donc si j'ai bien compris il faut remplacer la requete par select, desc ou autre en tt cas une requete qui renvois des resultats
    ok je remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "INSERT INTO khadimate(nom,prenom) VALUES('patatte','pattateos')";
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "SELECT * FROM khadimate";
    j'ai toujours les même warnings...

  13. #13
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Bonjour,

    Pourquoi tu ne réponds pas à la question posée 4 fois par Swoög : que cherches-tu à faire avec cette requête ?

  14. #14
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    je cherche a remplir un recordset puis a afficher ses attributs c tt

  15. #15
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Dans ce cas-là oui, c'est un SELECT qu'il faut faire.

  16. #16
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    ok je veux bien te croire mais j'ai toujours les mêmes warnings

  17. #17
    Membre éprouvé
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Points : 984
    Points
    984
    Par défaut
    Mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $result = mysql_query($query);
    if (!$result)
       die (mysql_error());
    Et regarde l'erreur (parce qu'il y en a sûrement une).

  18. #18
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    merci tout le monde en fait l'erreur vennait d'ailleurs j'avais oublié un "s" pour le nom de ma table dont le nom n'est pas "khadimate" mais "khadimates" merci IGLOO pour mysql_errors()...

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

Discussions similaires

  1. [MySQL] Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
    Par Pitchoune33 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 22/03/2008, 21h25
  2. [MySQL] Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
    Par zabdaniel dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/02/2008, 13h34
  3. [MySQL] Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource
    Par rach20032 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/10/2007, 12h52
  4. [MySQL] Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
    Par oOBaalberithOo dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 15/10/2007, 13h52
  5. [MySQL] Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
    Par farfella dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 09/10/2007, 11h47

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