Pb exécution requete

Pb exécution requete - PHP - Programmation

Marsh Posté le 22-09-2003 à 23:11:47    

Salut
 
Ca fait une heure que je tourne autour et la je vois pas...
 
Ce code :
 

Code :
  1. $req = "SELECT nom, password,code_niveau FROM Utilisateurs WHERE nom='$log';";
  2. $reponse = query($req);
  3. $nbl = nb_lignes($reponse);


 
J'ai récupéré la fonction query et nb_lignes d'un truc que j'avais fait y'a longtemps et qui marchait très bien jusque la...
 

Code :
  1. $host = "localhost";
  2. $db = "gooopil";
  3. $pwd = "......";
  4. function connexion ()
  5. {
  6. global $host, $db, $pwd;
  7. return mysql_connect ($host, $db, $pwd);
  8. }
  9. function query ($requete)
  10. {
  11. global $db;
  12. connexion ();
  13. $reponse = mysql_db_query ($db, $requete);
  14. deconnexion ();
  15. return $reponse;
  16. }
  17. function nb_lignes ($reponse)
  18. {
  19. return mysql_num_rows ($reponse);
  20. }


 
Si j'éxécute tout ca, ca me fait :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ...
 
J'ai testé la requete ds phpmyadmin et ca marche...
 
QQ1 ? :)


Message édité par gooopil le 23-09-2003 à 00:17:35
Reply

Marsh Posté le 22-09-2003 à 23:11:47   

Reply

Marsh Posté le 22-09-2003 à 23:14:20    

Gooopil a écrit :

Salut
 
Ca fait une heure que je tourne autour et la je vois pas...
 
Ce code :
 
 
$req = "SELECT nom, password,code_niveau FROM Utilisateurs WHERE nom='$log';";
 
 
 
 


 
Que vient faire le ; en rouge ?  :)


Message édité par Hermes le Messager le 22-09-2003 à 23:14:38
Reply

Marsh Posté le 22-09-2003 à 23:14:34    

Citation :


$req = "SELECT nom, password,code_niveau FROM Utilisateurs WHERE nom='$log';";


Y'a pas comme un point virgule en trop  :??:
 
[edit] Grillaid  [:kt-redfox]


Message édité par Kt-Redfox le 22-09-2003 à 23:15:09
Reply

Marsh Posté le 22-09-2003 à 23:15:52    

Le ; vient d'un de mes essais lamentable de debugging...Ca fait pareil sans...

Reply

Marsh Posté le 22-09-2003 à 23:47:15    

titre foireux, à changer


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-09-2003 à 00:18:50    

Désolé :)

Reply

Marsh Posté le 23-09-2003 à 00:27:03    

T'es sur d'avoir passer à nb_lignes un résultat de requête et pas une autre variable?
T'es sur que la requête c'est bien exécuter?

Reply

Marsh Posté le 23-09-2003 à 11:16:52    

omega2 a écrit :

T'es sur d'avoir passer à nb_lignes un résultat de requête et pas une autre variable?
T'es sur que la requête c'est bien exécuter?


 
$reponse = query($req);  
$nbl = nb_lignes($reponse);  
Donc a priori je passe bien un résultat de requete à nb_lignes
 
Après savoir si la requete s'est bien exécutée, la réponse serait non...vu que ca marche pas...Mais pourquoi ??

Reply

Marsh Posté le 23-09-2003 à 11:33:57    

ca vient soit de la requete, qui est désormais juste apres la chtite correction, soit de ta classe : 2 solutions :  
- verifie si ta requete fonctionne sous mysql sans passer par php (au pire du ajoute dans ta fonction query "or die("requete foireuse" )"
- utilise les fonction de base de php pour faire ta requete, sans passer par tes fonctions


Message édité par Profil supprimé le 23-09-2003 à 11:35:59
Reply

Marsh Posté le 23-09-2003 à 11:43:56    

il manque une donnée a ton mysql_db_query:
 
$link=@mysql_connect($host,$user,$password);
$requete=@mysql_db_query($base,$query,$link);
mysql_close();


---------------
lecteur mp3 yvele's smilies jeux de fille
Reply

Marsh Posté le 23-09-2003 à 11:43:56   

Reply

Marsh Posté le 23-09-2003 à 11:45:54    

faut que tu fasse comme cela:

Code :
  1. function query ($requete)
  2.   {
  3.      global $db;
  4.      
  5.      $reponse = mysql_db_query ($db, $requete,connexion ());
  6.      deconnexion ();
  7.      return $reponse;
  8.   }


Message édité par forummp3 le 23-09-2003 à 11:46:05

---------------
lecteur mp3 yvele's smilies jeux de fille
Reply

Marsh Posté le 23-09-2003 à 11:51:06    

forummp3 a écrit :

il manque une donnée a ton mysql_db_query:
 
$link=@mysql_connect($host,$user,$password);
$requete=@mysql_db_query($base,$query,$link);
mysql_close();


 
Je veux bien essayer mais le 3e argument de query est optionnel. Si on ne lui donne rien, il prend la derniere connexion établie...Donc normalement ca c bon...
 
 
En plus je viens de voir que mysql_db_query est obsolete...Je vais essayer avec mysql qery...

Reply

Marsh Posté le 23-09-2003 à 11:54:32    

Comme j'aime pas dire des trucs sans vérifier, je viens de vérifier,  
Ca

Code :
  1. function query ($requete)
  2. {
  3.     global $db;
  4.      
  5.     $reponse = mysql_db_query ($db, $requete,connexion ());
  6.     deconnexion ();
  7.     return $reponse;
  8. }


 
ou ce que j'ai fait c exactement la même chose...

Reply

Marsh Posté le 23-09-2003 à 11:55:52    

quand tu fait echo $requete; ca te donne la bonne requete ?


---------------
lecteur mp3 yvele's smilies jeux de fille
Reply

Marsh Posté le 23-09-2003 à 11:57:26    

forummp3 a écrit :

quand tu fait echo $requete; ca te donne la bonne requete ?


 
Oui et j'ai testé la requete sous myadmin...

Reply

Marsh Posté le 23-09-2003 à 11:59:19    

mysql_connect ($host, $db, $pwd);
 
c'est pas $db mais $user:
 
mysql_connect ($host, $user, $pwd);


---------------
lecteur mp3 yvele's smilies jeux de fille
Reply

Marsh Posté le 23-09-2003 à 12:02:50    

forummp3 a écrit :

mysql_connect ($host, $db, $pwd);
 
c'est pas $db mais $user:
 
mysql_connect ($host, $user, $pwd);


 
Bien essayé...Mais $db=gooopil c'est bien l'user pas le nom de la base...Juste une erreur de nomage de variable
 
Si je change le nom en mettant n'importequoi il me une erreur concernant les droits et- avec gooopil ca marche


Message édité par gooopil le 23-09-2003 à 12:03:47
Reply

Marsh Posté le 23-09-2003 à 12:49:27    

Y'a pas de requête dans la fonction nb_lignes(), et elle peut pas utiliser celle qui est dans query()? (privé <-> public)


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 23-09-2003 à 12:57:09    

Ou alors c'est à cause du deconnexion()?


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 23-09-2003 à 13:44:42    

Freekill a écrit :

Y'a pas de requête dans la fonction nb_lignes(), et elle peut pas utiliser celle qui est dans query()? (privé <-> public)


 
la fonction nb_lignes prend en parametre une variable. Je lui passe le résultat de la requete mysql renvoyé par query. je vois pas ou est le problème...

Reply

Marsh Posté le 23-09-2003 à 13:56:05    

Pfiiieww la c'est en train de m'enerver !!! Je l'ai fais 10 fois avant ce truc et la ca marche toujours pas...
 
J'ai tout refais et voila le code :

Code :
  1. $conn = mysql_connect (localhost, gooopil, "******" ) or die ("Erreur Connexion" );
  2. $result = mysql_query("SELECT *", $conn)or die ("Requ&ecirc;te invalide" );


 
Et à chaque fois ca me renvoie requete invalide....bouuuuuuuuuhhh


Message édité par gooopil le 23-09-2003 à 13:56:24
Reply

Marsh Posté le 23-09-2003 à 13:58:26    

Gooopil a écrit :

Pfiiieww la c'est en train de m'enerver !!! Je l'ai fais 10 fois avant ce truc et la ca marche toujours pas...
 
J'ai tout refais et voila le code :

Code :
  1. $conn = mysql_connect (localhost, gooopil, "******" ) or die ("Erreur Connexion" );
  2. $result = mysql_query("SELECT *", $conn)or die ("Requ&ecirc;te invalide" );


 
Et à chaque fois ca me renvoie requete invalide....bouuuuuuuuuhhh


 
Tu choisis pas de table?


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 23-09-2003 à 13:59:20    

Gooopil a écrit :


 
la fonction nb_lignes prend en parametre une variable. Je lui passe le résultat de la requete mysql renvoyé par query. je vois pas ou est le problème...


 
Faut ptet pas faire deconnexion() avant return mysql_num_rows ($reponse)?


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 23-09-2003 à 14:01:02    

Ah ouais putain !! J'ai voulu simplifier au maximum la requete pour etre sur de ce coté la et je fais une grosse connerie...C'est du joli ca
 
Sinon j'ai trouvé :) J'avais oublié de sélectionner la bdd...
mysql_select_db("BengBenny",$conn);

Reply

Marsh Posté le 23-09-2003 à 20:43:36    

Freekill a écrit :


 
Faut ptet pas faire deconnexion() avant return mysql_num_rows ($reponse)?

si si,il peut se deconnecter.


---------------
lecteur mp3 yvele's smilies jeux de fille
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed