1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| if (isset($_POST['rechercher'])) //si on a validé le formulaire
{
$recherche = mysql_real_escape_string(htmlspecialchars($_POST['recherche'])); //sécurisation des variables
$m = mysql_real_escape_string(htmlspecialchars($_POST['motcat']));
$p = mysql_real_escape_string(htmlspecialchars($_POST['pays']));
$mode = mysql_real_escape_string(htmlspecialchars($_POST['mode']));
$valid='oui';
if (empty($_POST['motcat'])) //si on a rempli le champs
{$motcat = "AND souscategorie1='$m'";}// AND souscategorie1='$motcat' OR pays='$pays'
else //si on ne l'a pas cochée
{$motcat = "";}// AND valid='oui'
if (empty($_POST['pays'])) //si on a rempli le champs
{$pays = "AND pays='$p'";}// AND souscategorie1='$motcat' OR pays='$pays'
else //si on ne l'a pas cochée
{$pays = "";}// AND valid='oui'
if ($mode == "tous_les_mots")
{$and_ou_or = 'AND';} //on utilisera AND dans la boucle
else
{ $and_ou_or = 'OR';} //on utilisera OR dans la boucle
if ($mode == "expression_exacte") //si le mode de recherche est par expression exacte
{
$selection_recherche = mysql_query("SELECT * FROM annonces WHERE titre LIKE '$recherche%' AND souscategorie1='$motcat' AND pays='$pays' AND valid='oui' ORDER BY idannonce DESC LIMIT $limite,$nombre");//
}
else //si le mode de recherche n'est pas par expression exacte
{
$mots = explode(" ", $recherche); //séparation des mots
$nombre_mots = count ($mots); //compte le nombre de mots
$valeur_requete = '';
for($nombre_mots_boucle = 0; $nombre_mots_boucle < $nombre_mots; $nombre_mots_boucle++) //tant que le nombre de mots de la recherche est supérieur à celui de la boucle, on continue en augmentant le nombre de mots de 1 à chaque fois
{
$valeur_requete .= '' . $and_ou_or . ' titre LIKE \'%' . $mots[$nombre_mots_boucle] . '%\''; //modification de la variable $valeur_requete
}
$valeur_requete = ltrim($valeur_requete,$and_ou_or); //suppression de AND ou de OR au début de la boucle
$selection_recherche = mysql_query("SELECT *FROM annonces WHERE $valeur_requete $pays AND valid='oui' ORDER BY idannonce DESC"); //requête avec le résultat de la boucle dedans
}
$nombre_resultats = mysql_num_rows($selection_recherche); //compte le nombre d'entrées sélectionnées par la recherche
if ($nombre_resultats == 0) //s'il n'y a pas de résultat
{
echo '<span class="font_blanc" align="center">...aucun resultat pour votre recherche.</span>';
}
else //il y a au moins un résultat
{
echo '<div align="center" class="font_blanc">Il y a ' . $nombre_resultats . 'annonce(s) correspondant à votre recherche !</div><br /><br />'; //nombre de résultats
while($resultats = mysql_fetch_array($selection_recherche))
{
echo |
Partager