Listing

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

10 réponses

sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
Dans quel langage ?

Sinon il suffit de récupérer les paramètres et de construire la requêtes SQL en conséquence, non ?
0
Jo
 
quelle base de donnée ?
quelle langage/application ?
0
matt
 
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
0
Utilisateur anonyme
 
if (!($ville == ""))
$requete = $requete . "ville='$ville'"

en gro tu concatenes si le champ n'est pas vide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
oui voilà, en ajoutant "AND truc='$machin'" pour chaque paramètre supplémentaire disponible.
0
LeSousss Messages postés 150 Statut Membre 15
 
Slt,
j'orai dit :
if (!($ville == ""))
$requete = $requete . "AND ville='$ville'"

sans le AND çà passera pas
0
matt
 
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)
0
sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
instruction "if" ?
0
matt
 
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 ...
0
LeSousss Messages postés 150 Statut Membre 15
 
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
0
matt
 
désolé effectivement j'avais pas bien lu merci beaucoup
0