paikan_hck Posté(e) le 5 mai 2005 Partager Posté(e) le 5 mai 2005 Bonjour a tous. Voila sur un de mes sites, j'ai un moteur de recherche sur une base MySQL, mais il delire, et n'affiche pas tous les resultats qu'il devrait... Voici la 1ere version du moteur : http://www.echos.pl/form/page_recherche.php dans un deuxieme temps, tout sera sur une seule recherche generale, mais d'abord je voudrais qu'il fonctionne parfaitement. Par exemple, dans les "sommaires" faire une recherche du mot "numero" Il devrait sortir 49 resultat (car 49 sommaires).. et il en trouve 1 seul De quoi cela pourrait il venir (code sur demande ) Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nis Posté(e) le 5 mai 2005 Partager Posté(e) le 5 mai 2005 Il faudrait qu'on aie le code oui Lien vers le commentaire Partager sur d’autres sites More sharing options...
paikan_hck Posté(e) le 5 mai 2005 Auteur Partager Posté(e) le 5 mai 2005 ok, je le mets dans peu de temps Lien vers le commentaire Partager sur d’autres sites More sharing options...
paikan_hck Posté(e) le 17 mai 2005 Auteur Partager Posté(e) le 17 mai 2005 bon, voila, apres "un peu" de temps pour cause de vacances: page de recherche <form action="http://www.echos.pl/form/page_resultats_so.php" method="post" name="recherche" id="recherche"> <table width="400" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td colspan="2"><div align="center"><font size="2">Rechercher dans les brèves <strong>société</strong></font></div></td> </tr> <tr> <td width="60%"> <div align="center"><font size="2">Entrer un seul mot à rechercher</font> </div></td> <td width="50%"><div align="center"> <input name="mot_so" type="text" id="mot" maxlength="50"> </div></td> </tr> <tr> <td> </td> <td><div align="center"> <input name="envoyer" type="submit" id="envoyer" value="Envoyer"> </div></td> </tr> </table> </form> la page de resultat: //on selectionne les news ou le mot est présent $req = mysql_query("SELECT * from societe where titre or description LIKE '%".$mot_so."%' Order by nro DESC"); //on compte le nombre de réponse $res= mysql_numrows($req); //on affiche le nombre de réponse print 'Pour le mot "'.$mot_so.'" il y a '.$res.' résultats <br>'; while ($ligne = mysql_fetch_array($req)) { echo "<tr> "; echo "<td width='70%' size='2' class='text'><a href='http://www.echos.pl/form/societeb.php?societe=".$ligne["nro"]."'><font size='2' face='Verdana, Arial, Helvetica, sans-serif'><b>- ".$ligne["titre"]."</b></font></a></td>"; echo "</tr>"; Voila. Donc en fait ca fonctionne mais pas tout a fait normalement... Lien vers le commentaire Partager sur d’autres sites More sharing options...
paikan_hck Posté(e) le 25 mai 2005 Auteur Partager Posté(e) le 25 mai 2005 personne? :( Lien vers le commentaire Partager sur d’autres sites More sharing options...
Magnus63 Posté(e) le 25 mai 2005 Partager Posté(e) le 25 mai 2005 J'y connait pas grand chose mais si titre et description possedent le meme contenu, la requete ne vas pas les selectionner car je crois que le "or" est exclusif : t : toto d: toto (ligne 1) t : toto d: tata (ligne 2) si tu recherche toto il ne vas te rendre que la ligne 2 car la ligne 1 possede toto dans les 2 champs. Fait une recherche que dans 1 champs et sa devrai mieux aller... Lien vers le commentaire Partager sur d’autres sites More sharing options...
paikan_hck Posté(e) le 31 mai 2005 Auteur Partager Posté(e) le 31 mai 2005 ok, merci. je vais essayer ca :edit: non en fait j'ai besoin des 2... ca rpour cercher une actualité sans le titre ou la description, c'est un peu bete... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nis Posté(e) le 31 mai 2005 Partager Posté(e) le 31 mai 2005 Peut-être une piste, mais je n'en suis pas très sur, je ne fais que débuter en SQL : $req = mysql_query("SELECT * from societe where titre or description LIKE '%".$mot_so."%' Order by nro DESC"); Est-ce qu'il ne prendrait pas le LIKE blablabla uniquement pour la description ? Ne faudrait-il pas mettre de parenthèses style : ... where (titre or description) LIKE ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
paikan_hck Posté(e) le 31 mai 2005 Auteur Partager Posté(e) le 31 mai 2005 ca peut etre une piste oui, je vais essayer ca :edit: non ca passe pas Lien vers le commentaire Partager sur d’autres sites More sharing options...
astero-H Posté(e) le 31 mai 2005 Partager Posté(e) le 31 mai 2005 $req = mysql_query("SELECT * from societe where titre or description LIKE '%".$mot_so."%' Order by nro DESC"); bon ça fait longtemps que j'ai pas vu de sql mais je pense que le pb vient de la syntaxe du "or", essaies plutot un truc du genre : ... WHERE titre LIKE '%".$mot_so."%' OR description LIKE '%".$mot_so."%' ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
paikan_hck Posté(e) le 31 mai 2005 Auteur Partager Posté(e) le 31 mai 2005 ok, vais essayer ca IMPEC !! ca marche parfaitement Merci and be INpact Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nis Posté(e) le 31 mai 2005 Partager Posté(e) le 31 mai 2005 Arf, zut. J'y avais pensé mais je me suis dis que ça donnerait le même résultat en mettant titre et description entre parenthèses Il n'y aurait pas moyen de n'écrire qu'une seule fois le Like pour les deux "champs" (titre et descr.) Lien vers le commentaire Partager sur d’autres sites More sharing options...
paikan_hck Posté(e) le 31 mai 2005 Auteur Partager Posté(e) le 31 mai 2005 bah le coup de la parenthese semblait bon (comme en maths pour la "prorité") mais ca passe pas... Lien vers le commentaire Partager sur d’autres sites More sharing options...
njoyard Posté(e) le 31 mai 2005 Partager Posté(e) le 31 mai 2005 je pense qu'en SQL l'expression "champ1 OR champ2" signifie "champ1 != NULL OR champ2 != NULL" donc en faisant (champ1 OR champ2) LIKE %mot% ça ne marchera pas (comparaison d'un bool avec un LIKE -> toujours faux ?) mais je peux me tromper... cela dit je ne pense pas qu'il existe de raccourci pour demander qu'un certain nombre de champs satisfassent à la même condition. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.