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

  FORUM HardWare.fr
  Programmation
  PHP

   Warning: mysql_num_rows() expects parameter 1 to be resource

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Warning: mysql_num_rows() expects parameter 1 to be resource

n°1952603
seozus
Posté le 22-12-2009 à 22:32:04  profilanswer
 

Bonjour, je code un compteur de recherches qui logue les recherches sur mon site web (www.quizcity.net) afin d'établir un classement des mots les plus recherchés. Pour éviter les doublons, je me suis fait une vérification d'ip selon si l'usager est logué sous son compte ou non.
 

Code :
  1. if(!isset($_SESSION['user']))
  2. {
  3. //Vérif et ajout dans top_populaire (transparent)
  4. $verificationip = mysql_num_rows(mysql_query("SELECT * FROM recherches WHERE text = '".$recherche."' AND ip = '".$_SERVER[REMOTE_ADDR]."'" ));
  5. if($verificationip == 0){
  6.  mysql_query("INSERT INTO recherches SET text='".$recherche."',  user='Visiteur', ip='".$_SERVER[REMOTE_ADDR]."', date='".time()."'" );
  7. }
  8. }
  9. else
  10. {
  11. //Vérif et ajout dans top_populaire (transparent)
  12. $verificationip = mysql_num_rows(mysql_query("SELECT * FROM recherches WHERE text = '".$recherche."' AND ip = '".$_SERVER[REMOTE_ADDR]."'" ));
  13. if($verificationip == 0){
  14.  mysql_query("INSERT INTO recherches SET text='".$recherche."',  user='".$row[user]."', ip='".$_SERVER[REMOTE_ADDR]."', date='".time()."'" );
  15. }
  16. }


 
Voici le message retourné lors de l'exécution: Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\fr\search.php on line 175
 
La ligne 175 correspond à: $verificationip = mysql_num_rows(mysql_query("SELECT * FROM recherches WHERE text = '".$recherche."' AND ip = '".$_SERVER[REMOTE_ADDR]."'" ));  
 
Vous avez une petite idée de ce qui peut causer mon problème?


---------------
www.failqc.com : FailBlog québécois
mood
Publicité
Posté le 22-12-2009 à 22:32:04  profilanswer
 

n°1952605
Pascal le ​nain
Posté le 22-12-2009 à 22:53:23  profilanswer
 

Salut  :hello:  
 
Tout d'abord, si tu utilises presque le même code dans les deux cas, affecte une variable en visiteur ou $row[user] en fonction de isset($_SESSION['user']).
Tu balances ta requète juste après.
Ensuite, je te conseille de séparer tout ca. Utilise des variables intermédiaires. Tu perds un poil en temps d'exécution, mais tu gagnes énormément en clarté !
 
 

Code :
  1. if(!isset($_SESSION['user']))
  2. {
  3. $user = 'Visiteur';
  4. }
  5. else
  6. {
  7. $user = $row[user];
  8. }
  9. $query = 'SELECT * FROM recherches WHERE text = "'.$recherche.'" AND ip = "'.$_SERVER[REMOTE_ADDR].'"';
  10. $result = mysql_query($query);
  11. $verificationip = mysql_num_rows($result);
  12. if ($verificationip == 0)
  13. {
  14. $query = 'INSERT INTO recherches SET text="'.$recherche.'",  user="'.$user.'", ip="'.$_SERVER[REMOTE_ADDR].'", date="'.time().'"';
  15. mysql_query($query);
  16. }


 
 
La séparation de mysql_query() et de son parametre te permet de faire un echo de ta requête en cas de problème.
 
Pour ton problème, tu dois avoir une erreur dans ta requete. Affiche-là et copie-colle-la dans phpmyadmin. Tu verras ce qui pose problème.


Message édité par Pascal le nain le 22-12-2009 à 22:58:27
n°1953159
aideinfo
Posté le 25-12-2009 à 13:06:42  profilanswer
 

Le mieux est de séparer ton mysql_query() et ton mysql_num_rows(). Tu peux avoir une erreur dans ta requête SQL, qui peut entrainer ce genre d'erreur. Et si le but de ton SELECT et d'avoir le nombre d'enregistrements, autant faire directement un SELECT COUNT()


---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile

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

   Warning: mysql_num_rows() expects parameter 1 to be resource

 

Sujets relatifs
Connexion mysql pages perso sfr[MySQL] Jointure : Afficher autre chose si pas de résultat?
[PHP/MYSQL] Impossible de faire plusieurs updateProblème de configuration MySQL sur Django
Requête double en MySQL Generateur Password + Sauvegarde MYSQL
utilisation de mysql dans un shell linuxMigration Oracle vers MySQL plus de 10 millions d'enregistrements
Erreur mysql : corrupted double-linked listPlantage lors de l'execution d'une requete [PHP/MySQL]
Plus de sujets relatifs à : Warning: mysql_num_rows() expects parameter 1 to be resource


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