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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] comment tester si une requête ne donne pas de résultat

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] comment tester si une requête ne donne pas de résultat

n°629425
nemohp
Adepte du provisoire permanent
Posté le 03-02-2004 à 11:17:51  profilanswer
 

Code :
  1. $sql="SELECT *
  2.         FROM parcours
  3.         WHERE position=$i
  4.         AND hit=$max";
  5.   $rs=mysql_query($sql);
  6.   while($tab=mysql_fetch_array($rs))
  7.   {
  8.     //traitement
  9.     ...
  10.   }


 
voila ma requete, en fait qd $i est plus grand  que ce ki existe dans ma table ma requete ne r'envoie rien (normal quoi)
 
mais mon prob c'est que je trouve pas de solution pour savoir si ma requete ne renvoie rien.
 
j'ai testé avec mysql_num_rows mais il renvoie 1 alors qu'il n'y a pas de résultat à ma requête sql !
 
et ensuite $tab=mysql_fetch_array($rs)) plante la mentablament, normal vu ke y a pas de réponse à la requête ... :sarcastic:  
 
donc je cherche une fonction php qui permettte de testé si ma requête renvoie un résultat !
 

mood
Publicité
Posté le 03-02-2004 à 11:17:51  profilanswer
 

n°629440
Sh@rdar
Ex-PhPéteur
Posté le 03-02-2004 à 11:27:40  profilanswer
 

mysql_num_rows($rs) te renvoie le nombre de ligne de résultat donc si ça retourne 1 c'est que t'as forcément une ligne
 

Code :
  1. $sql = '....';
  2. if ($rs = @mysql_query ($sql)) {
  3.   if (@mysql_num_rows($rs)>0) {
  4.     while ($tab = mysql_fetch_array($rs)) {
  5.       //traitement
  6.     }
  7.   }
  8.   else {
  9.     echo 'Aucun ligne à afficher';
  10.   }
  11. else {
  12.   echo 'Erreur MySQL : '.mysql_error();
  13. }


Message édité par Sh@rdar le 03-02-2004 à 11:28:07

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°629442
mrbebert
Posté le 03-02-2004 à 11:28:55  profilanswer
 

nemohp a écrit :

...
 
et ensuite $tab=mysql_fetch_array($rs)) plante la mentablament, normal vu ke y a pas de réponse à la requête ... :sarcastic:  
 
...

Ah non, mysql_fetch_array() ne plante pas s'il n'y a pas de résultat. Tu confonds une requête fausse (syntaxe...) et une requête juste mais renvoyant 0 résultats.
 
$rs = mysql_query($sql);
if (! $rs) {
    echo "Erreur requete";
} else {
    // traitements ....
 
}


Message édité par mrbebert le 03-02-2004 à 11:29:40
n°629484
nemohp
Adepte du provisoire permanent
Posté le 03-02-2004 à 11:53:32  profilanswer
 

Sh@rdar a écrit :

mysql_num_rows($rs) te renvoie le nombre de ligne de résultat donc si ça retourne 1 c'est que t'as forcément une ligne


 
non ce n'est pas une erreur de syntax, car ma requete tan ke le parametre $i est inférieur à 11 (ça valeur max dans la table) ben ca marche, mais apres ca déconne  

n°629488
nemohp
Adepte du provisoire permanent
Posté le 03-02-2004 à 11:55:00  profilanswer
 

mrbebert a écrit :

Ah non, mysql_fetch_array() ne plante pas s'il n'y a pas de résultat. Tu confonds une requête fausse (syntaxe...) et une requête juste mais renvoyant 0 résultats.
 
$rs = mysql_query($sql);
if (! $rs) {
    echo "Erreur requete";
} else {
    // traitements ....
 
}


 
je ne comprend pas moi aussi, d'habitude ya  pas de problème , ma syntaxe est bonne !!!

n°629489
nemohp
Adepte du provisoire permanent
Posté le 03-02-2004 à 11:55:59  profilanswer
 

voilà l'erreur :
 

Code :
  1. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\développement\easyphp1-7\www\magasin ampc\admin\stat_view.php on line 183


 
 

n°629495
nemohp
Adepte du provisoire permanent
Posté le 03-02-2004 à 12:00:45  profilanswer
 

ayé c bon je viens de trouver l'erreur !   [:aless]  
 
en effet c t bien la requete, enf aite la varibale $max était parfois non-déclaré suivant un traitement précédent
 
du coup j'ai plus qu'a faire :
 

Code :
  1. if ( isset($max) )
  2. {
  3.   //traitement
  4.   ...
  5.   }


 
merci de votre aide les gas  :jap:

n°629733
ratibus
Posté le 03-02-2004 à 14:32:03  profilanswer
 

C'est pourquoi il faut toujours tester le résultat d'un mysql_query avant de faire appel à des fonctions de traitement de resultats (mysql_fetch_*). :)


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

  [PHP] comment tester si une requête ne donne pas de résultat

 

Sujets relatifs
easy PHP[PHP - MYSQL] Connexion difficile chez free :(
besoin d'infos pour requete SQL particuliere ![PHP] 1000 variables ou un tableau à 1000 entrées ?
[PHP-PostgresSQL] Comment récupérer l'index d'insertion?[JS/PHP] Expression rationnelle pour valider un Nom
Comment ont affiche un message d'alerte en PHP ?Récuperer les cookies avec PHP??!
[PHP-MySQL] Récupérer la date de dernière modif. de la DB ??[résolu] aide sur une requete sql toute conne
Plus de sujets relatifs à : [PHP] comment tester si une requête ne donne pas de résultat


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