Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
722 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème de requête

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de requête

n°793682
fabdel
Posté le 12-07-2004 à 15:39:55  profilanswer
 

Bonjour,
 
Je suis débutant en PHP, donc excusez moi si mon code n'est pas correct.
J'ai fait une fonction qui me retourne une erreur de ce style :

Code :
  1. Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource

 
 
Mon code est le suivant :

Code :
  1. function ficheRechercheAvance($TE_Id,$AC_Id,$PE_Id) {
  2. echo $TE_Id;
  3. echo $AC_Id;
  4. echo $PE_Id;
  5.  $request = "SELECT * from fiche ";
  6.  $request = $request + "INNER JOIN fiche_territoire ON fiche.FI_Id = fiche_territoire.FI_Id ";
  7.  $request = $request + "INNER JOIN fiche_activite ON fiche.FI_Id = fiche_activite.FI_Id ";
  8.  $request = $request + "INNER JOIN fiche_periode ON fiche.FI_Id = fiche_periode.FI_Id ";
  9.  $bool = 0;
  10.   if ($TE_Id != "NULL" ) {
  11.   $request = $request + "WHERE fiche_territoire.TE_Id= '$TE_Id' ";
  12.    $bool = 1;
  13.  }
  14.  if ($AC_Id != "NULL" ) {
  15.   if ($bool == 0)
  16.    $request = $request + "WHERE fiche_activite.AC_Id= '$AC_Id' ";
  17.   else
  18.    $request = $request + "AND fiche_activite.AC_Id= '$AC_Id' ";
  19.   $bool = 1;
  20.  }
  21.  if ($PE_Id != "NULL" ) {
  22.   if ($bool == 0)
  23.    $request = $request + "WHERE fiche_periode.PE_Id= '$PE_Id' ";
  24.   else
  25.    $request = $request + "AND fiche_periode.PE_Id= '$PE_Id' ";
  26.   $bool = 1;
  27.  }
  28.  $result = mysql_query($request);
  29.    $row = mysql_numrows($result);
  30.    mysql_free_result($result);
  31.    return $row;
  32. }


 
Si une âme charitable veux bien m'aider à trouver mon erreur, je lui en serait reconnaissant.
 
Merci.

mood
Publicité
Posté le 12-07-2004 à 15:39:55  profilanswer
 

n°793709
hop le fou
Tu m'en diras tant
Posté le 12-07-2004 à 15:51:48  profilanswer
 

Pas trouvé mysql_numrows($result)...
Trouvé mysql_num_rows($result)
 
C'est peut etre juste ca...

n°793711
fabdel
Posté le 12-07-2004 à 15:54:14  profilanswer
 

Ca revient au même mysql_numrows ou mysql_num_rows...

n°793717
hop le fou
Tu m'en diras tant
Posté le 12-07-2004 à 15:58:58  profilanswer
 

Ta requete doit pas etre bonne alors.
Essaie de la faire tourner sur une console Sql
essaie de l'afficher dans ton script
 
au fait la concaténation c'est pas . en php ?

n°793721
fabdel
Posté le 12-07-2004 à 16:02:34  profilanswer
 

Pour la requête, oui, j'ai essayé de la faire tourner sur mon phpMyAdmin et il n'y a pas de problème si je remplace les variables dans la requête par des valeurs.
 
Sinon :

Citation :

au fait la concaténation c'est pas . en php ?


 
Euh, c'est à dire ???

n°793726
hop le fou
Tu m'en diras tant
Posté le 12-07-2004 à 16:05:10  profilanswer
 

fabdel a écrit :

Pour la requête, oui, j'ai essayé de la faire tourner sur mon phpMyAdmin et il n'y a pas de problème si je remplace les variables dans la requête par des valeurs.
 
Sinon :

Citation :

au fait la concaténation c'est pas . en php ?


 
Euh, c'est à dire ???


A la place du + (mais je dis peut etre n'importe quoi...)
 
Tu peux donner la requete (en dur) stp?
 
Edit : dans le cas ou ca marche pas hein... un petit echo de la requete avant l'erreur


Message édité par hop le fou le 12-07-2004 à 16:06:04
n°793730
deliriumtr​emens
sic transit intestinal...
Posté le 12-07-2004 à 16:07:43  profilanswer
 

Au lieu de  

Code :
  1. $request = "SELECT * from fiche ";
  2.       $request = $request + "INNER JOIN fiche_territoire ON fiche.FI_Id = fiche_territoire.FI_Id ";


 
ce serait
 

Code :
  1. $request = "SELECT * from fiche ";
  2.       $request.= "INNER JOIN fiche_territoire ON fiche.FI_Id = fiche_territoire.FI_Id ";

n°793731
fabdel
Posté le 12-07-2004 à 16:08:27  profilanswer
 

Citation :

Tu peux donner la requete (en dur) stp?


 
J'espère que c'est cela que tu veux voir : :(  
 

Code :
  1. SELECT *
  2. FROM fiche
  3. INNER JOIN fiche_territoire ON fiche.FI_Id = fiche_territoire.FI_Id
  4. INNER JOIN fiche_activite ON fiche.FI_Id = fiche_activite.FI_Id
  5. INNER JOIN fiche_periode ON fiche.FI_Id = fiche_periode.FI_Id
  6. WHERE fiche_territoire.TE_Id =6
  7. AND fiche_activite.AC_Id =2
  8. AND fiche_periode.PE_Id =2

n°793737
fabdel
Posté le 12-07-2004 à 16:17:39  profilanswer
 

Bon, c'est résolu, j'ai mis les points pour la concaténation, mais je ne pense pas que c'était le problème, après avoir fait un echo sur $request, je me suis rendu compte que les variables $TE_ID, $AC_Id et $PE_Id étaient entre quotes, hors ce sont des entier, j'ai donc supprimés les quotes et tout est rentré dans l'ordre.
 
Merci beaucoup à vous.

n°793741
jagstang
Pa Capona ಠ_ಠ
Posté le 12-07-2004 à 16:21:48  profilanswer
 

fabdel a écrit :

Ca revient au même mysql_numrows ou mysql_num_rows...


T'as vu ça ou ?
 
http://ch2.php.net/manual/en/funct [...] m-rows.php


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème de requête

 

Sujets relatifs
Problème avec Requête SQL - ASP[vb.net] problème requête HTTP
Problème requête sql base oracleProbleme requete sur 2 tables...
probleme de requete[access] probleme de requete avec plusieurs parametres .....
De Acces à SQL server: problème de requête Helpppppppppppp!!!Problème avec d'affichage d'une requête SQL... HELP
MySQL: problème avec une requête multitableProbleme PHP et Requete
Plus de sujets relatifs à : Problème de requête


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR