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 éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    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 confirmé
    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
    Par défaut
    depuis quand est-ce que les requête INSERT renvoyent des données ?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre éprouvé

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

  4. #4
    Expert confirmé
    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
    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 ?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  5. #5
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    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 confirmé
    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
    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...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  7. #7
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    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 confirmé
    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
    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...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  9. #9
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    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 confirmé
    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
    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 ?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  11. #11
    Membre émérite
    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
    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 éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    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 Expert 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
    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 éprouvé

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

  15. #15
    Membre Expert 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
    Par défaut
    Dans ce cas-là oui, c'est un SELECT qu'il faut faire.

  16. #16
    Membre éprouvé

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

  17. #17
    Membre émérite
    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
    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 éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    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