Bonjour à tous,

Je viens d'atteindre mes limites en matières de php et de requête sql...
Voilà, je souhaite faire apparaître les résultats d'une base de données en fonction de 3 critères.
Mais je voudrais pouvoir à la fois afficher les résultats selon 3 critères renseignés ou laisser le choix de ne donner qu'un seul critère.
Or, pour l'instant, j'arrive à afficher le résultat si les 3 critères sont remplis, mais s'il en manque un, ça ne renvoie aucun résultat.

Voici le code de la page de résultats :

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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
if  (!empty($style) OR !empty($prix) OR !empty($lieu) ) {
 
if ($style<>"35") {
$testStyle=1;
}
if (!empty($prix)<>"") {
$testPrix=2;
}
if (!empty($lieu)<>"") {
$testLieu=4;
}
$test=$testStyle+$testLieu+$testPrix;
switch ($test) {
 
case 1:
	$search = mysql_query("SELECT *FROM $pdpproduit WHERE styleid='$style' ORDER BY nom") or die ("ERROR:" . mysql_error());
        break;
case 2:
	$search = mysql_query("SELECT *FROM $pdpproduit WHERE prixid='$prix' ORDER BY nom") or die ("ERROR:" . mysql_error());
        break;
case 4:
	$search = mysql_query("SELECT *FROM $pdpproduit WHERE lieuid='$lieu' ORDER BY nom") or die ("ERROR:" . mysql_error());
        break;
case 3:
	$search = mysql_query("SELECT *FROM $pdpproduit WHERE styleid='$style' AND prixid='$prix' ORDER BY nom") or die ("ERROR:" . mysql_error());
        break;
case 5:
	$search = mysql_query("SELECT *FROM $pdpproduit WHERE styleid='$style' AND lieuid='$lieu' ORDER BY nom") or die ("ERROR:" . mysql_error());
        break;
case 6:
	$search = mysql_query("SELECT *FROM $pdpproduit WHERE prixid='$prix' AND lieuid='$lieu' ORDER BY nom") or die ("ERROR:" . mysql_error());
        break;
case 7:
	$search = mysql_query("SELECT *FROM $pdpproduit WHERE styleid='$style' AND prixid='$prix' AND lieuid='$lieu' ORDER BY nom") or die ("ERROR:" . mysql_error());
        break;
 
}
Quelqu'un a-t-il une piste pour mon problème ?
Merci d'avance !