5/5 (11 avis)
Snippet vu 7 022 fois - Téléchargée 30 fois
//----------------------------------------- // CONFIG //---------------------------------------- <? $sql_serveur = ""; // Serveur MYSQL $sql_user = ""; // Login MYSQL $sql_pass = ""; // Mot de passe MYSQL $sql_database = ""; // Nom de votre base de données $table = ""; // Table dans laquelle vous faites la recherche $couleur_motscles = "#FFFF00"; // Couleur de surlignement des mots clés dans les résultats. Par défaut : jaune ?> //------------------------------------- // GENERALITES //------------------------------------- <html> <head> <style type="text/css"> .motscles{background:<?=$couleur_motscles?>}; </style> </head> <body> //------------------------------------------ // LE FORMULAIRE (recherche.php) //------------------------------------------ <? if (empty($_GET["op"]) { ?> <br><br><font size="5"><b><center>La sécurité routière sur le Web</center></b></font><br><br> <center> <form method="post" action="recherche.php?op=search"> <input type="text" name="request"> <input type="submit" value="Rechercher!"><br><br> Rechercher avec au moins un des mots :<input type="radio" value="or" name="et_ou" checked> Rechercher avec tous les mots : <input type="radio" name="et_ou" value="and"> </form> </center> <? } //------------------------------------------------------------ // TRAITEMENT RECHERCHE (suite de recherche.php) //------------------------------------------------------------ elseif (isset($_GET["op"] && $_GET["op"]="search") { @ $connect = mysql_connect($sql_serveur,$sql_user,$sql_pass) or die ("Impossible de se connecter à la base de données"); // connection classique mysql_select_db($sql_database); if (!isset($_POST["request"])) // Si l'utilisateur n'a rien rentré echo "<font color=\"#FF0000\" face=\"Arial\"><center>Veuillez entrer vos mots-clés pour la recherche</center></font>"; else { $request = trim($_POST["request"]); // On supprime les espaces vides en début et fin de chaîne if (strstr($request, " ")) // Si il y a des espaces = plusieurs mots { $plusieurs_mots = 1; $mots=explode(" ",$request); // On sectionne en tableau tous les mots $nombre_mots=count($mots); $z=0; $texte="Liens contenant <b>"$mots[0]"</b>"; $phrase="description like('%$mots[$z]%')"; // On initialise le premier mot $z=1; $motif = $mots[0]; while($z<$nombre_mots) // démarrage de la boucle { $motif = "|".$mots[$z]; $phrase.=" ".$_POST["et_ou"]." description like('%$mots[$z]%')"; $texte.=" "; if($_POST["et_ou"]=="and"){$texte.="et";}else{$texte.="ou";} // C'est là où on met "recherche avec au moins 1 des mots" ou "avec tous les mots" $texte.=" <b>"$mots[$z]"</b>"; $z++; } $z=0; } else // sinon : 1 seul mot { $plusieurs_mots = 0; $phrase = "description like('%$request%')"; // recherche simple ^^ $texte = "Enregistrement(s) contenant <b>"$request"</b>"; } $query="select * from ".$table." where ".$phrase."; $result_recherche = mysql_query($query); @ $num_liens_rech = mysql_num_rows($result_recherche); if ($num_liens_rech==0) // Si il n'a rien trouvé { echo "<center><font color=\"#FF0000\" face=\"Arial\">Aucun enregistrement ne correspond à votre recherche !</font></center>"; } else { ?> <center><font face="Arial">Résultat de votre recherche :</font></center> <br><br> <? echo "<center><font face=\"Arial\">".$texte."</font></center>"; // Affiche " echo "<br><br>"; echo " Nous avons trouvé ".$num_liens_rech." enregistrement(s) correspondant à votre recherche. <br><br>"; echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"540\" align=\"center\">\n"; while ($tableau_rech=$BDD->enTableauTXT($result_recherche)) { if ($plusieurs_mots==1) { $new_description = $tableau_rech["description"]; for ($z=0; $z<$nombre_mots; $z++) { $mots[$z] = strtolower($mots[$z]); $new_description = str_replace (strtolower($mots[$z]), "<span class=\"motscles\">".strtolower($mots[$z])."</span>", $new_description); $new_description = str_replace (strtoupper($mots[$z]), "<span class=\"motscles\">".strtoupper($mots[$z])."</span>", $new_description); $new_description = str_replace (ucfirst($mots[$z]), "<span class=\"motscles\">".ucfirst($mots[$z])."</span>", $new_description); } } else { $new_description = str_replace (strtolower($request), "<span class=\"motscles\">".strtolower($request)."</span>", $tableau_rech["description"]); $new_description = str_replace (strtoupper($request), "<span class=\"motscles\">".strtoupper($request)."</span>", $new_description); $new_description = str_replace (ucfirst($request), "<span class=\"motscles\">".ucfirst($request)."</span>", $new_description); } echo "<tr>\n"; echo "<td colspan=\"2\">"; echo "<a href=\"redir.php?id=".$tableau_rech["Lid"]."\" target=\"_blank\"><font color=\"#000090\"><b>".$tableau_rech["nom"]."</b></font></a>"." - <font color=\"#BD33B2\"><i>".$tableau_rech["adresse"]."</i></font>"; echo "<td>"; echo "</tr>\n"; echo "<tr>\n"; echo "<td width=\"30\"> </td>\n"; echo "<td width=\"472\">"; echo "<font color=\"#828282\">".$new_description."</font>"; echo "<br><br>"; echo "</td>\n</tr>\n"; } echo "</table>"; } } ?> </body> </html>
23 déc. 2007 à 10:13
22 mars 2006 à 12:18
10 mai 2004 à 13:16
Pour éviter une parse error, j'ai modifié la ligne query en
$query= "select * from ".".$table."." where ".".$phrase.";
Ceci dit, j'ai encore une parse error $
Ne manque t'il pas une } dans la phase de constitution de la phrase de recherche ?
Merci beaucoup !
6 avril 2004 à 18:06
Parse error: parse error, unexpected '{' in c:\program files\easyphp\www\perso_sql2\database.php on line 34.
Plutôt étrange n'est-ce pas?
Quelqu'un peut m'aider? Merci et bonne fin d'aprés-midi
24 févr. 2004 à 10:32
Cependant, je n'arrive toujours pas à obtenir l'affichage des résultats, et pour cause puisque tu fais référence à une fonction "enTableauTXT()" qui n'est définie nulle part... (dans : "while ($tableau_rech=$BDD->enTableauTXT($result_recherche))" ).
Aurais-tu oublié un include ?
Sinon, ce code devrait s'avérer bien pratique quand il fonctionnera :-)
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.