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

  FORUM HardWare.fr
  Programmation
  PHP

  Moteur de recherche : Prquoi ça marche pas?

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Moteur de recherche : Prquoi ça marche pas?

n°460293
electroger
Posté le 17-07-2003 à 14:20:35  profilanswer
 

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 :
 

Code :
  1. <form method="post" action="moteur.php3">
  2.     <input type="text" name="motcle" /> <input type="submit" value="ok" />
  3. </form>


 
 
Le script PHP (moteur.php3) :
 

Code :
  1. <?
  2. $host = "";
  3. $user = "";
  4. $pass = "";
  5. $bdd = "";
  6. @mysql_connect($host,$user,$pass) or die("Impossible de se connecter" );
  7. $sql = "SELECT * FROM search_personnage WHERE per_definition LIKE '%$motcle%'";
  8. $resultat = mysql_query($sql);
  9. $nb = mysql_num_rows($resultat);
  10. if ($nb == 0)
  11.     {
  12.     echo "pas de resultat";
  13.     }
  14. else
  15.     {
  16.     echo "Recherche terminée. $nb résultats trouvés<br /><br />";
  17.     while ($val = mysql_fetch_array($resultat))
  18.       {
  19.       echo "- <a href=\"$val[per_url]\">$val[per_nom]</a> <br />";
  20.       }
  21.     }
  22. ?>


 
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?

mood
Publicité
Posté le 17-07-2003 à 14:20:35  profilanswer
 

n°460294
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 17-07-2003 à 14:21:59  profilanswer
 

Ba déjà, c'est quoi l'erreur ? [:ddr555]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°460301
electroger
Posté le 17-07-2003 à 14:25:48  profilanswer
 

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.


Message édité par electroger le 17-07-2003 à 14:26:13
n°460305
RoM@In
Posté le 17-07-2003 à 14:31:09  profilanswer
 

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...

n°460308
electroger
Posté le 17-07-2003 à 14:33:45  profilanswer
 

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" ).

n°460311
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 17-07-2003 à 14:35:38  profilanswer
 

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).


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°460313
anapajari
s/travail/glanding on hfr/gs;
Posté le 17-07-2003 à 14:43:13  profilanswer
 

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 :
  1. $link = mysql_connect("localhost", "mysql_user", "mysql_password" )
  2.         or die("Impossible de se connecter : " . mysql_error());


Message édité par anapajari le 17-07-2003 à 14:45:22
n°460318
electroger
Posté le 17-07-2003 à 14:46:33  profilanswer
 

Taiche a écrit :

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).


 
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.

n°460331
electroger
Posté le 17-07-2003 à 14:52:12  profilanswer
 

Anapajari a écrit :

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 :
  1. $link = mysql_connect("localhost", "mysql_user", "mysql_password" )
  2.         or die("Impossible de se connecter : " . mysql_error());




 
Je viens d'essayer, ça ne change rien  :( .

n°460336
RoM@In
Posté le 17-07-2003 à 14:54:44  profilanswer
 

essaie avec ca:
 $sql = "SELECT * FROM search_personnage WHERE per_definition LIKE ('%'.$motcle.'%')";

mood
Publicité
Posté le 17-07-2003 à 14:54:44  profilanswer
 

n°460338
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 17-07-2003 à 14:56:33  profilanswer
 

Anapajari a écrit :

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.


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 :p


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°460363
electroger
Posté le 17-07-2003 à 15:09:23  profilanswer
 

Taiche a écrit :


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 :p


 
 :)  
MERCI BEAUCOUP !  :jap:  :jap:
 
EDIT : Avec ce script, y a pas de risque de trous de sécurité?


Message édité par electroger le 17-07-2003 à 15:11:13

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

  Moteur de recherche : Prquoi ça marche pas?

 

Sujets relatifs
[PHP] LOAD DATA > ça marche sous Phpmyadmin mais pas ... (resolu)Recherche manuel ou truc dans le style
recherche de documentation complète ASP.netJBuilder 8 et Wincvs ?? ça marche pas
[C#] Comparaison de byte[] qui marche pas[Word] Recherche code pour le carriage return ou espace
[Oracle] decode marche pas (tour de magie)a propos de la programation d'un moteur de recherche
LookandFeel windows ? marche pas 
Plus de sujets relatifs à : Moteur de recherche : Prquoi ça marche pas?


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