cretefre Posté 16 Mars 2006 Posté 16 Mars 2006 Bonjour ! Je me suis mis il y a peu de temps (2 semaines) au php et j'ai pu créer un formulaire d'inscription géré par php et mysql. Je voudrais savoir si ç'est envisageable de créer une recherche multi critères (3 ou 4) en php avec des notions relativement simples à partir de ma base.(1 table de 17 champs en Varchar) Tout ce que j'ai pu imaginer pour le moment est horriblement long et fastidieux (genre : une trentaine de IF {...) ce qui me parait peu cohérent ! Evidemment, je ne demande pas un script, mais juste des indications sur les notions à utiliser. Merci !
baboon Posté 17 Mars 2006 Posté 17 Mars 2006 Bonjour, Plus il y a de criteres, plus il y a de IF... OR ou AND Donnes un exemple de requête, code, et ce que tu souhaites comme recherche...multicritères, sans oublier la structure de ta table ... "37 IF" c'est vrai que ça fait beaucoup pour 4 critères... A suivre....
cretefre Posté 17 Mars 2006 Auteur Posté 17 Mars 2006 (modifié) Merci de m'aider ! En fait ,ç'est un site de rencontres...pour musiciens amateurs. j'ai une table mysql avec 17 champs (id, prenom, nom,lieu,instrument...etc...uniquement du texte) A chaque inscription, une nouvelle entree est créée. Je voudrais une recherche multicritères avec : -le niveau (<select>formulaire) -la tranche d'age(<select>formulaire) -et le lieu : 3 cases pour trois départements à remplir au choix (toutes ,aucune,1, ou 2). Si mes calculs sont bons, ça ferait 32 possibilités (3 critères mais 3 choix pour le 3ème) Donc, je me demandais s'il y avait possibilité de faire plus court, la solution la plus longue étant rarement la bonne. Comment font les sites qui proposent des recherches avec plus de 20 critères ? Et au fait, est-ce que l'on peut mettre deux "AND" ou deux "OR" dans une requête mysql ? Merci beaucoup ! Modifié 17 Mars 2006 par cretefre
iNCiTE Web Posté 24 Mars 2006 Posté 24 Mars 2006 -le niveau (<select>formulaire)-la tranche d'age(<select>formulaire) -et le lieu : 3 cases pour trois départements à remplir au choix (toutes ,aucune,1, ou 2). SELECT * FROM latable WHERE niveau = ".$_POST['niveau']." AND age = ".$_POST['age']." AND ( dep = ".$_POST['lieu1']." OR dep = ".$_POST['lieu2']." OR dep = ".$_POST['lieu3'].") Evidemment c'est juste une base, il faut adapter si les critères sont des inférieurs/supérieux, enlever la fin si le choix "tous" est sélectionné etc Et au fait, est-ce que l'on peut mettre deux "AND" ou deux "OR" dans une requête mysql ? Oui bien sûr !!! et heureusement...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant