Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/07/2006, 11h45   #1
Membre éclairé
 
Inscription : juin 2005
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 1 056
Points : 329
Points : 329
Envoyer un message via AIM à jadey Envoyer un message via MSN à jadey Envoyer un message via Yahoo à jadey
Par défaut [PHP] Warning : supplied argument is not a valid MySQL result resource

lors de l'execution du script suivant:
Code :
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
jadey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2006, 11h50   #2
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
depuis quand est-ce que les requête INSERT renvoyent des données ?
__________________
Rédacteur "éclectique" (XML, 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 (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2006, 11h58   #3
Membre éclairé
 
Inscription : juin 2005
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 1 056
Points : 329
Points : 329
Envoyer un message via AIM à jadey Envoyer un message via MSN à jadey Envoyer un message via Yahoo à jadey
??? INSERT est entre ""...elle ne renvoit rien du tt
jadey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2006, 12h06   #4
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
Citation:
Envoyé par jadey
Code :
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, 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 (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2006, 12h24   #5
Membre éclairé
 
Inscription : juin 2005
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 1 056
Points : 329
Points : 329
Envoyer un message via AIM à jadey Envoyer un message via MSN à jadey Envoyer un message via Yahoo à jadey
Citation:
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 :
$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...
jadey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2006, 12h37   #6
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
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, 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 (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2006, 13h03   #7
Membre éclairé
 
Inscription : juin 2005
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 1 056
Points : 329
Points : 329
Envoyer un message via AIM à jadey Envoyer un message via MSN à jadey Envoyer un message via Yahoo à jadey
Citation:
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 ????
jadey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2006, 13h44   #8
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
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, 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 (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2006, 14h16   #9
Membre éclairé
 
Inscription : juin 2005
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 1 056
Points : 329
Points : 329
Envoyer un message via AIM à jadey Envoyer un message via MSN à jadey Envoyer un message via Yahoo à jadey
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?
jadey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2006, 14h26   #10
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
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, 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 (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2006, 14h26   #11
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
Salut

Citation:
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
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2006, 14h43   #12
Membre éclairé
 
Inscription : juin 2005
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 1 056
Points : 329
Points : 329
Envoyer un message via AIM à jadey Envoyer un message via MSN à jadey Envoyer un message via Yahoo à jadey
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 :
$query = "INSERT INTO khadimate(nom,prenom) VALUES('patatte','pattateos')";
par
Code :
$query = "SELECT * FROM khadimate";
j'ai toujours les même warnings...
jadey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2006, 15h32   #13
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Bonjour,

Pourquoi tu ne réponds pas à la question posée 4 fois par Swoög : que cherches-tu à faire avec cette requête ?
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2006, 15h45   #14
Membre éclairé
 
Inscription : juin 2005
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 1 056
Points : 329
Points : 329
Envoyer un message via AIM à jadey Envoyer un message via MSN à jadey Envoyer un message via Yahoo à jadey
je cherche a remplir un recordset puis a afficher ses attributs c tt
jadey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2006, 16h05   #15
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Dans ce cas-là oui, c'est un SELECT qu'il faut faire.
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2006, 17h10   #16
Membre éclairé
 
Inscription : juin 2005
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 1 056
Points : 329
Points : 329
Envoyer un message via AIM à jadey Envoyer un message via MSN à jadey Envoyer un message via Yahoo à jadey
ok je veux bien te croire mais j'ai toujours les mêmes warnings
jadey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2006, 17h29   #17
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
Mets :

Code :
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).
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2006, 17h58   #18
Membre éclairé
 
Inscription : juin 2005
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 1 056
Points : 329
Points : 329
Envoyer un message via AIM à jadey Envoyer un message via MSN à jadey Envoyer un message via Yahoo à jadey
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()...
jadey est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h31.


 
 
 
 
Partenaires

Hébergement Web