3/5 (19 avis)
Snippet vu 26 723 fois - Téléchargée 27 fois
Bon alors le truc aussi c'est que vous pouvez cherche que dans une table ! pas 2 table ... Donc je vous donne un exemple de table a créer pour que vous compreniez mieux : CREATE TABLE valdemarne ( id int(4) NOT NULL auto_increment, rohff varchar(255) default NULL, rimk varchar(255) default NULL, booba varchar(255) default NULL, PRIMARY KEY (id) ) Entrez plusieurs ligne avec des mots ke vous rechercherez apres pour TaTer le moteur de recherche koi ^^ apres voilà le code à mettre dans une page recherche.php : <table border="0" cellspacing="0" cellpadding="1" width='100%'> <tr> <td align='center'> <form method="get" action="recherche.php"> <b>Recherche : </b><input type="text" name="search" size='35' value='<? echo "$search"; ?>'> <input type="submit" value="OK!"> </form> </td> </tr> <tr> <td height='10'> </td> </tr> <? $host = "localhost"; // votre host sql (ex: sql.free.fr) $user = "root"; // votre identifiant $pass = ""; // votre password $bdd = "VOTRE_BDD"; // le nom de votre base de donné $table = "valdemarne"; // par défaut le nom de votre table est news mais si vous voulez le changer libre a vous (n'oubliez pas de changer aussi le fichier .sql) $c = @mysql_connect($host,$user,$pass) or die("connection impossible"); @mysql_select_db("$bdd",$c) or die("selection impossible"); $result = mysql_query("SELECT count(id) FROM ".$table." WHERE `rohff` LIKE '%$search%' OR `rimk` LIKE '%$search%' OR `booba` LIKE '%$search%'"); $ret = mysql_fetch_array($result); // nombre de lignes $nb_results = $ret[0]; if ($nb_results<=0 OR empty($search)) { if (empty($search)) { echo "<tr><td><p class='texte'>Pas de recherche à effectuer.</td></tr>"; } else { echo "<tr><td><p class='texte'>Il y a <b>$nb_results</b> résultats à votre recherche. Recommencez avec un seul mot...</td></tr>"; } } else { echo "<tr><td><p class='texte'>Il y a <b>$nb_results</b> résultats à votre recherche.</td></tr>"; $sql = "select * from $table WHERE `rohff` LIKE '%$search%' OR `rimk` LIKE '%$search%' OR `booba` LIKE '%$search%' order by id DESC"; if($p = @mysql_query($sql,$c)){ while($r = @mysql_fetch_array($p)){ $id = "$r[id]"; $rohff = "$r[rohff]"; $rimk = "$r[rimk]"; $booba = "$r[booba]"; echo "<tr> <td> $rohff </td> <td> $rimk </td> <td> $booba </td> </tr>"; } } } ?> </table>
6 déc. 2010 à 05:06
Bonjour chères amis. Je suis débutant en PHP et j'aurais besoin de votre aide.
J'aimerais utiliser le script présenté ci-haut pour effectuer des recherche dans ma base de données. Ma base contiens des fiches clients, donc j'ai adapté le script pour qu'il recherche dans toutes le tables exemples: nom, adresse, ville, telephone...ect...
Mon problème c'est un message d'erreur qui apparait au simple chagement de la page.
Voici le message.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/b49849491/public_html/bdclient/recherche.php on line 24
A la base ce script a suscité mon intérêt pour sa simplicité, par contre si vous croyez qu'un autre code serait plus approprié, dite vous que je suis ouvert a vos suggestion. :)
Merci à l'avance!
26 juil. 2008 à 11:17
19 oct. 2006 à 18:14
5 oct. 2006 à 00:04
N'y vois rien de méchant Henvimal mais quiconque ayant quelques jours de connaissance en php peu pondre un code comme celui là.
J'aime pas trop les like or like, en plus tu t'ai pas posé la question de trié les résultats pour afficher par exemple les lignes ayant le + de fois ce(s) en premier, tu peux faire cela avec une petite soustraction/division pour resortir un résultat cohérent.
Pour MALALAM, j'utilise les fulltext mais ce qui m'embete avec ce type d'index c'est qu'il s'agit de mot complet imagine que tu cherche tout ce qui commence par infor... le fulltext te ressord rien, ensuite si un mot est contenu dans + de la moitié des lignes d'un table, il est mis en mot indésirable car non pertinant et ca dès fois ca me gène aussi après tu peux modifier aussi la liste noir mais bon c'est pas le but.
Tu aura par contre un gain considérable avec un fulltext mais ton script un peu remanié (ordre de pertinence) peux servir à d'autre, après on peux toujours lui ajouter une auto-complétion...
30 sept. 2006 à 12:21
Bon rien à ajouter sur le code...courage, avec un peu de lecture tu l'amélioreras facilement.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.