WHERE avec plusieurs paramètres

Inteface Messages postés 3 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 6 février 2008 - 27 sept. 2007 à 17:49
Inteface Messages postés 3 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 6 février 2008 - 28 sept. 2007 à 13:09
Salut,

J'aimerais savoir comment faire une requête de filtrage sur une table ayant un champ "valeur"

SELECT * FROM table WHERE valeur = P1, P2, P3 .... Pn // les P1 à Pn viennent d'un formulaire possedant un champ <select name="p1".... Pn

Merci de m'aider

4 réponses

David REI Messages postés 33 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 27 septembre 2007
27 sept. 2007 à 17:55
Tu peux utiliser la clause IN;
SELECT * FROM table where valeur IN ('P1','P2',...,'PN)'
0
Inteface Messages postés 3 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 6 février 2008
27 sept. 2007 à 18:12
Ok merci pour ta reponse maintenant supposons que les indices de P viennent d'un resultat d'une requete ... je m'explik mieux. Supposons un marchand qui veux poster un produit (disque dur par exemple) Dè qu'il choisis le disque dur dans la catégorie de produit autoamtiquement il a les caractéristiques pour ce type de produit à savoir : capacité, vitesse de rotation, mémoire tampon, Interface

Alors avec ces caractéristiques j'en fait un formulaire dynamique qui a des champs <select name= p1 à pn ce qui ve dire selon le produit le nombre de select change.

Ces select permettrons à l'internaute de faire un filtrage su la liste de disque dur afficher. Et surtout ces select une choisi (selection de valeur) j'attaque plusieurs table dont une table "donneproduit" qui a un champ "valeur" qui possèdent plusieurs ligne de données contenu dans les <select >  P1, P2, Pn donc avec ça une fois choisi la requête qui me permettra de filtrer la table :

SELECT * FROM donneproduit WHERE valeur = P$i

Voilà mon problème clairement bon a peu près libéllé
0
David REI Messages postés 33 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 27 septembre 2007
27 sept. 2007 à 20:55
A première vue, j'aurais pensé à une procédure stockée mais tu risques d'avoir un problème pour passer en paramètre ta liste de valeur.
Donc j'obterais pour une méthode de récupération des données. Réalise deja une requete qui va taper dans toutes les tables impactées et ensuite dans ton code, ajoute dynamiquement la clause WHERE sur les attributs qui t'interessent.
WHERE DisqueDur='MAXTOR'
AND Taille = '160 Go'
AND AgeDuCapitaine > 20
AND ...
etc ...
0
Inteface Messages postés 3 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 6 février 2008
28 sept. 2007 à 13:09
salut

ta raison je crois que je vè revoir ma base je dois faire des modifications pour aléger ma tâche. Merci
0
Rejoignez-nous