Salut à tous,
je suis en train de bosser sur un site de petites annonces. On me demande de pouvoir réaliser des recherches dans les petites annonces suivant un formulaire multicritères (recherche par mot clés, recherche par rubriques, et recherche par date de création d'annonce). C'est à dire qu'un utilisateur pourra faire une recherche en remplissant un ou plusieurs champs du formulaire.
Voici le code du formulaire:
Sur la page affiche_ann.php, l'affichage des petites annonces trouvées doit pouvoir se faire suivant un classement de rubriques.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <form action="affiche_ann.php" method="post"> <p>Recherche par mots clés: <input name="motcle" type="text" class="saisie" onfocus="this.value=''" value="Recherche" /></p> <p>Recherche par rubrique: <select name="id_rub" class="saisie"> <option>Choisissez une catégorie</option> <?php $sql = "SELECT * FROM rubriques WHERE 1"; $result = mysql_query($sql); while($rubriques = mysql_fetch_assoc($result)){ echo "\n\t\t\t\t".'<option value="'.$rubriques['id_rub'].'">'; echo $rubriques['titre']; echo '</option>'; } ?> </select></p> <p>Rechercher par date: <input name="date_ann" type="text" class="saisie" onfocus="this.value=''" value="Recherche" /><br /> <input type="submit" class="bouton" value="Valider" /></p> </form>
C'est à dire (par exemple):
INFORMATIQUE
P.A. 1
P.A. 2
IMMOBILIER
P.A. 1
ect...
Or je n'arrive pas à faire ma reqête ou plutot je ne suis pas sûr de moi sur le coup
Quand je fais un echo $sql; voici le résultat retourné:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $sql = "SELECT id_rub,id_ann,contenu,date_ann FROM annonces WHERE id_ann='$id_ann' OR contenu LIKE '%$motcle%' ORDER BY id_ann ;";
Ce qui est bizzare c'est le 'Recherche' dans la variable id_ann (qui est le l'identifiant de l'annonce). La valeur est celle qui se trouve dans le value du champ de recherche par date
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT id_rub,id_ann,contenu,date_ann FROM annonces WHERE id_ann='Recherche' OR contenu LIKE '%free%' ORDER BY id_ann ;![]()
Je ne sais pas si j'ai été assez explicite...
Merci de votre aide![]()
Partager