requête SQL avec variables non renseignées
Bonjour,
J'ai une requête mySQL qui porte sur une bdd de 8 tables, le tout dans un script PHP.
La requête en question :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Select nomspot, image
from tspot, tacces, tcommune, tdifficulte, tlocalite, tpays, tregion, ttype
where tspot.nocommune=tcommune.nocommune
and ttype.notype=tspot.notype
and tlocalite.nolocal=tspot.nolocal
and tspot.nodiff=tdifficulte.nodiff
and tacces.noacces=tspot.noacces
and tregion.noregion=tcommune.noregion
and tpays.nopays=tregion.noregion
and tspot.nocommune='".$_POST["nocommune"]."'
and tspot.notype='".$_POST["notype"]."'
and tspot.nolocal='".$_POST["nolocal"]."'
and tspot.nodiff='".$_POST["nodiff"]."'
and tspot.noacces='".$_POST["noacces"]."'
and tpays.nopays='".$_POST["nopays"]."'
and tregion.noregion='".$_POST["noregion"]."'; |
La requête retourne bien le résultat voulu quand TOUTES les variables renseignées concordent. Si il y a incompatibilité, mon script me retourne bien un message d'erreur. En revanche, ce que j'aimerais, c'est que la requête me retourne des résultats même si toutes les variables ne sont pas renseignées.
Je m'explique : si je renseigne par exemple nocommune=1
notype=1
nolocal=2
nodiff=1
noacces=1
nopays=1
noregion=1,
il existe un "nomspot" qui regroupe toutes ces caractéristiques, et la requête me le retourne.
En revanche si je ne renseigne que : nopays=1, je voudrais avoir tous les "nomspot" correspondant à ce pays, sans tenir compte de "notype", "nolocal" ou encore "noacces".
Est-ce possible, ou faut-il que je crée différentes requête en fonction des champs remplis?
En espérant avoir été clair, je vous remercie d'avance de votre attention et de vos eventuelles réponses.