WHERE avec plusieurs paramètres

Signaler
Messages postés
3
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
6 février 2008
-
Messages postés
3
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
6 février 2008
-
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

Messages postés
33
Date d'inscription
mardi 18 septembre 2007
Statut
Membre
Dernière intervention
27 septembre 2007

Tu peux utiliser la clause IN;
SELECT * FROM table where valeur IN ('P1','P2',...,'PN)'
Messages postés
3
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
6 février 2008

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é
Messages postés
33
Date d'inscription
mardi 18 septembre 2007
Statut
Membre
Dernière intervention
27 septembre 2007

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 ...
Messages postés
3
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
6 février 2008

salut

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