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

  1. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    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
  2. Jo
     
    quelle base de donnée ?
    quelle langage/application ?
    0
  3. 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
  4. Utilisateur anonyme
     
    if (!($ville == ""))
    $requete = $requete . "ville='$ville'"

    en gro tu concatenes si le champ n'est pas vide
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    oui voilà, en ajoutant "AND truc='$machin'" pour chaque paramètre supplémentaire disponible.
    0
  7. LeSousss Messages postés 151 Date d'inscription   Statut Membre Dernière intervention   15
     
    Slt,
    j'orai dit :
    if (!($ville == ""))
    $requete = $requete . "AND ville='$ville'"

    sans le AND çà passera pas
    0
  8. 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
    1. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
       
      instruction "if" ?
      0
  9. 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
  10. LeSousss Messages postés 151 Date d'inscription   Statut Membre Dernière intervention   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
  11. matt
     
    désolé effectivement j'avais pas bien lu merci beaucoup
    0