Est-ce que les valeurs de tes enregistrements en base sont bien des chaines vides ? (et non pas une valeur NULL qui est différente de "", le premier étant l'absence de valeur, le second étant une valeur vide)
Si tes données sont à NULL au lieu de vide, il te suffit de modifier ta requête en remplaçant le != '' par un IS NOT NULL.
A noter également que pour ta secondes requête, il manque des parenthèses pour éviter la priorité de l'opérateur AND sur l'opérateur OR. En gros, ici :
type LIKE '%".$type."%'
AND nbr_pc >= ".$nbr_pc."
AND prix <= ".$budget_max."
AND ville = '".$ville_cherche_1."'
OR ville = '".$ville_cherche_2."'
OR ville = '".$ville_cherche_3."'
Tu cherches les enregistrements :
- dont le type correspondent ET dont le nbr_pc est supérieur à celui demandé ET le prix est inférieur au budget max ET dans le souhait de ville 1
- OU dans le souhait de ville 2 (quelque soit les autres critères)
- OU dans le souhait de ville 3 (quelque soit les autres critères)
Si tu souhaites conserver les critères et rechercher dans une des trois villes, il te faut ajouter des parenthèses :
... AND ( critere1 OR critere2 OR critere3 )
Est-ce que les valeurs de tes enregistrements en base sont bien des chaines vides ? (et non pas une valeur NULL qui est différente de "", le premier étant l'absence de valeur, le second étant une valeur vide)
Si tes données sont à NULL au lieu de vide, il te suffit de modifier ta requête en remplaçant le != '' par un IS NOT NULL.
A noter également que pour ta secondes requête, il manque des parenthèses pour éviter la priorité de l'opérateur AND sur l'opérateur OR. En gros, ici :
[sql] type LIKE '%".$type."%'
AND nbr_pc >= ".$nbr_pc."
AND prix <= ".$budget_max."
AND ville = '".$ville_cherche_1."'
OR ville = '".$ville_cherche_2."'
OR ville = '".$ville_cherche_3."'[/sql]
Tu cherches les enregistrements :
- dont le type correspondent ET dont le nbr_pc est supérieur à celui demandé ET le prix est inférieur au budget max ET dans le souhait de ville 1
- OU dans le souhait de ville 2 (quelque soit les autres critères)
- OU dans le souhait de ville 3 (quelque soit les autres critères)
Si tu souhaites conserver les critères et rechercher dans une des trois villes, il te faut ajouter des parenthèses :
[sql]... AND ( critere1 OR critere2 OR critere3 )[/sql]