Bonjour à tous,
J'ai actuellement un formulaire contenant plusieurs select me permettant de rechercher dans ma base de donnée un certain objet en fonction de sa marque, catégorie et gamme:
Code html : 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
21
22
23
24
25
26
27
28
29
30
31
32
33 <form method="get" name="recherche_categories" action="/frontend_dev.php/osiatech"> <fieldset> <legend>Recherche une pièce par catégorie</legend> <select name="marques"> <option value="Tous">Tous</option> <option value="2">COMPAQ</option> <option value="3">DELL</option> <option value="1">HP</option> <option value="4">IBM</option> </select> <select name="gammes"> <option value="Tous">Tous</option> <option value="1">Gamme 1</option> <option value="2">Gamme 2</option> <option value="3">Gamme 3</option> <option value="4">Gamme 4</option> <option value="5">Gamme 5</option> </select> <select name="categories"> <option value="Tous">Tous</option> <option value="4">Ecran</option> <option value="5">Imprimante</option> <option value="2">NoteBook</option> <option value="3">PDA</option> <option value="1">Poste de travail</option> <option value="6">Routeur</option> </select> </fieldset> <input name="submit" value="Rechercher" type="submit"> </form>
Cependant un même objet peut avoir plusieurs gammes donc j'ai une table de jointure qui a comme champ index_gamme et index_catalogue. Dans cette table, le champs index_catalogue a pour valeur l'id des objet de la table catalogue auquel on attribut une ou plusieurs gammes.
Je souhaiterais que ma requête me permettent d'afficher tous les objet de la table catalogue ayant pour index_marque l'id selectionné dans le select marques, pour index_famille, l'id selectionné dans le select catégories et tous les id qui ont pour index_gamme dans la table jointure_gammes celui selectionné dans le select gammes.
Pour le moment j'ai fait cette requete mais qui ne répond pas parfaitement à mon besoin:
Code mysql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT * FROM catalogue c LEFT JOIN jointures_gammes j ON c.id = j.index_catalogue WHERE (c.index_marque = 3 AND c.index_famille = 1 AND j.index_gamme = 1)
J'ai en effet un problème puisqu'elle ne prend pas en compte ma restriction sur la gamme...
Merci de votre aide
Partager