Fonction + Requete

GYo
Eléphanteau du PHP | 11 Messages

26 nov. 2008, 15:37

Bonjour tout le monde,


Je sais pas si c’est la bonne section, désolé par avance.
Voila j’ai une petite question. J’ai 4 liste déroulantes I, A, P et E qui contiennent tous beaucoup de champs dont un champ incluant tout les champs. Chaque liste à donc deux états (tout ou un champ en particulier). Le problème c’est que pour chaque état je dois avoir une requête différente dans ma base de donnée. Ce qui fait 16 combinaisons différentes possible (table de vérité à 4 entrée (IAPE) soit 2^4 combinaisons).

J’étais partis pour faire une fonction avec des if/else mais s’il faut que je code 16 if ça sera pas très pratique J’en arrive à ma question :

comment faire pour limiter le nombre de if ? Y a-t-il une autre solution, plus simple ?

Annexe : J’était parti sur ça :

Code : Tout sélectionner

If (I=tout et A= Champ Particulier et P= CP et E=CP) { Requete } Else If (I=CP et A=tout et P= CP et E=CP) { Requete }
Ect pour les 16 combinaisons possibles

merci

ViPHP
ViPHP | 2291 Messages

26 nov. 2008, 17:38


Eléphant du PHP | 254 Messages

27 nov. 2008, 01:09

salut

Ton champs de recherche est un ensemble fini de 0 et de 1 (par exemple tout=1 et CP=0), tu peux donc facilement avoir un tableau associatif entre un code (exemple "0101") et une requete sql

une petite fonction pourrait te retourner une requete en lui passant en paramettre la concaténation de tes quatres valeurs, ainsi la recherche se ferait sur l'index d'un tableau plutot que dans une longue série de if imbriqués (ou d'opérateurs ternaires)

GYo
Eléphanteau du PHP | 11 Messages

27 nov. 2008, 10:55

Merci dunbar, je vais tester cette méthode, je vous tient au courant.