Listing

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. Modérateur
    Dans quel langage ?

    Sinon il suffit de récupérer les paramètres et de construire la requêtes SQL en conséquence, non ?
    1. 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
      1. if (!($ville == ""))
        $requete = $requete . "ville='$ville'"

        en gro tu concatenes si le champ n'est pas vide
        1. Modérateur
          oui voilà, en ajoutant "AND truc='$machin'" pour chaque paramètre supplémentaire disponible.
          1. Slt,
            j'orai dit :
            if (!($ville == ""))
            $requete = $requete . "AND ville='$ville'"

            sans le AND çà passera pas
            1. 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)
              1. Modérateur
                instruction "if" ?
            2. 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 ...
              1. 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