Moteur de recherche : Prquoi ça marche pas? - PHP - Programmation
Marsh Posté le 17-07-2003 à 14:21:59
Ba déjà, c'est quoi l'erreur ? ![[:ddr555] [:ddr555]](https://forum-images.hardware.fr/images/perso/ddr555.gif) 
 
Marsh Posté le 17-07-2003 à 14:25:48
Voici le message d'erreur : 
 
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/local/apache/htdocs/sites/r/roger-one.net/moteur.php3 on line 20 
pas de resultat 
 
La ligne 20 : $nb = mysql_num_rows($resultat); 
 
Sinon, il met toujours qu'il n'y a pas de résultat.
Marsh Posté le 17-07-2003 à 14:31:09
ton erreur viens du fait que ta requette ne peut pas etre executée, 
 
vérifie les majuscules, minuscules, c sensible a la casse!!! 
 
essaie d'afficher ta variable pour voir ce qu'elle contien...
Marsh Posté le 17-07-2003 à 14:33:45
Ben disons que si je fais :  
 
<? echo $sql; ?><br/> 
<? echo $motcle; ?>  
 
Ca marche parfaitement et il me met :  
 
SELECT * FROM search_personnage WHERE per_definition LIKE '%alliance%' 
alliance 
(avec une recherche "alliance" ).
Marsh Posté le 17-07-2003 à 14:35:38
L'erreur signifie que la variable $resultat est vide. Avant de faire mysql_num_rows(), fais un if($resultat). 
Affiche ta requête et tente de l'envoyer direct dans MySQL (via phpMyAdmin ou la ligne de commande, au choix).
Marsh Posté le 17-07-2003 à 14:43:13
T'es sur que t'es connecté sur la bonne base? 
Nan parce que vu que tu fais pas de mysql_db_select je suis dubitatif sur ce qui se passe. 
Pis vire le arobase devant mysql connect aussi ... 
Faudrait mieux ecrire un truc dans le genre 
| Code : 
 | 
Marsh Posté le 17-07-2003 à 14:46:33
| Taiche a écrit : L'erreur signifie que la variable $resultat est vide. Avant de faire mysql_num_rows(), fais un if($resultat).  | 
 
 
J'ai ajouté : if ($resultat)  
Et je n'ai plus le message d'erreur. Par contre il me met toujours qu'il n'y a pas de résultats.
Marsh Posté le 17-07-2003 à 14:52:12
| Anapajari a écrit : T'es sur que t'es connecté sur la bonne base?  
   | 
 
 
Je viens d'essayer, ça ne change rien   .
 .
Marsh Posté le 17-07-2003 à 14:54:44
essaie avec ca: 
 $sql = "SELECT * FROM search_personnage WHERE per_definition LIKE ('%'.$motcle.'%')"; 
Marsh Posté le 17-07-2003 à 14:56:33
| Anapajari a écrit : T'es sur que t'es connecté sur la bonne base?  | 
 
Ah ba ui, c'est ça ! Si tu fais pas de mysql_select_db(), il faut écrire mysql_db_query($bdd, $sql); à la place du mysql_query(); 
Ca ira mieux 
Marsh Posté le 17-07-2003 à 15:09:23
| Taiche a écrit :   | 
 
 
  
  
MERCI BEAUCOUP !   
   
 
 
EDIT : Avec ce script, y a pas de risque de trous de sécurité?
Marsh Posté le 17-07-2003 à 14:20:35
Bonjour tout le monde ! 
  
Je travaille sur un moteur de recherche (aidé par quelqu'un qui s'y connait pas mal en php). Mais ça marche pas... Voici le code :
Le formulaire de recherche :
Le script PHP (moteur.php3) :
C'est pour mon site ( http://www.roger-one.net ). Il contient une partie encyclopédique et donc un moteur de recherche serait un grand plus.
Sinon pour la BDD, ça se passe comme ça : Une table nommée "search_personnage" (qui contient les infos pour la partie "personnages" de mon encyclopédie STARWARS, mais bientôt toutes les parties seront référencées dans le moteur) avec plusieurs champs ("per_id"; "per_nom"; "per_taille"; (...) "per_definition" (qui deviendra une liste de mots clefs, pour l'instant c'est un court texte); "per_url" ).
Nous ne voyons pas d'ou vient l'erreur. Est ce que quelqu'un peut nous aider?