Listing
matt
-
matt -
matt -
bonjour, j'ai un soucis au niveau de la méthode pour réaliser un listing
mon problème est le suivant : j'ai une liste de clients dans une base de données, je dois proposer une interface qui permet de ressortit une liste de clients en fonction de paramètres renseignés par l'utilisateur
si un des champs est laissé vide par l'utilisateur, il faudrait modifier la requête en enlevant une condition
il y a 9 param pour l'utilisateur, quel est la méthode la plu rapide pour traiter ce problème
mon problème est le suivant : j'ai une liste de clients dans une base de données, je dois proposer une interface qui permet de ressortit une liste de clients en fonction de paramètres renseignés par l'utilisateur
si un des champs est laissé vide par l'utilisateur, il faudrait modifier la requête en enlevant une condition
il y a 9 param pour l'utilisateur, quel est la méthode la plu rapide pour traiter ce problème
10 réponses
Dans quel langage ?
Sinon il suffit de récupérer les paramètres et de construire la requêtes SQL en conséquence, non ?
Sinon il suffit de récupérer les paramètres et de construire la requêtes SQL en conséquence, non ?
oui on est bien d'accord à ce niveau là, il faut récupérer les paramètres et c'est ce que j'arrive faire
mais si l'utilisateur va laisser un champ vierge par exemple pour la ville alors la requête sera du style WHERE ville='$ville' et $ville sera vide donc les résultats de la requête seront faussés
en fait je voudrai que lorsque $ville est vide la requête ne contienne pas la condition WHERE ville=$ville mais garde toutes les autres conditions où les variables ne sont pas vides
tu vois ce que je veux dire
mais si l'utilisateur va laisser un champ vierge par exemple pour la ville alors la requête sera du style WHERE ville='$ville' et $ville sera vide donc les résultats de la requête seront faussés
en fait je voudrai que lorsque $ville est vide la requête ne contienne pas la condition WHERE ville=$ville mais garde toutes les autres conditions où les variables ne sont pas vides
tu vois ce que je veux dire
if (!($ville == ""))
$requete = $requete . "ville='$ville'"
en gro tu concatenes si le champ n'est pas vide
$requete = $requete . "ville='$ville'"
en gro tu concatenes si le champ n'est pas vide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Slt,
j'orai dit :
if (!($ville == ""))
$requete = $requete . "AND ville='$ville'"
sans le AND çà passera pas
j'orai dit :
if (!($ville == ""))
$requete = $requete . "AND ville='$ville'"
sans le AND çà passera pas
voilà ma requete
SELECT id FROM identite
WHERE canton='$canton'
AND ville='$ville'
AND dirigeant='$dirigeant'
AND categorie='$categorie'
AND cp='$cp',
AND contrat='$contrat';
le problème c'est que si le champ ville par exemple n'est pas renseigné par l'utilisateur, la requête sera faussée car elle va chercher une ville s'appelant " "
il faudrait que si le champ ville était ville
la ligne AND ville='$ville' soit ignorée
(PHP,odbc)
SELECT id FROM identite
WHERE canton='$canton'
AND ville='$ville'
AND dirigeant='$dirigeant'
AND categorie='$categorie'
AND cp='$cp',
AND contrat='$contrat';
le problème c'est que si le champ ville par exemple n'est pas renseigné par l'utilisateur, la requête sera faussée car elle va chercher une ville s'appelant " "
il faudrait que si le champ ville était ville
la ligne AND ville='$ville' soit ignorée
(PHP,odbc)
mais il y au une centaine d'instructions if possible en fonction des différents renseignements entrés par l'utilisateur, ce que j'expliquai pour ville est identique pour tous les autres paramètres canton, dirigeant ...
t'a pa du tout lire, je te rappelle ce que sebsauvage en plus détaillé
$requete = "SELECT id FROM identite WHERE 1";
if (!($ville == ""))
$requete = $requete . "AND ville='$ville'"
if (!($dirigeant == ""))
$requete = $requete . "AND dirigeant='$dirigeant'"
.....
pour le where 1, je ne suis pas sur mais c'est a cause des and sinon tu risque d'avoir where and si aucune condition n'est remplie
$requete = "SELECT id FROM identite WHERE 1";
if (!($ville == ""))
$requete = $requete . "AND ville='$ville'"
if (!($dirigeant == ""))
$requete = $requete . "AND dirigeant='$dirigeant'"
.....
pour le where 1, je ne suis pas sur mais c'est a cause des and sinon tu risque d'avoir where and si aucune condition n'est remplie