8791 sujets

Développement web côté serveur, CMS

Bonjour,

n'étant pas très doué en SQL et après quelques recherches en echec. Je viens vous poser la question.
Voilà , j'ai un système de filtre pour des articles taggés.
tout mes tags sont sur la même table mais correspondent à 3 catégories de filtres (ex: chronologique | géographique | thematique ).
je cherche donc à faire une requête SQL qui remplie les conditions selon les tags cochés.
jusque là pas de problême. Ca se complique lorsque j'aimerais que lorsqu'il y a au moins deux tags cochés, les deux conditions soient remplies pour la recherche (ex: 2012 et Europe) et qu'il me trouve seulement les articles ayant ces deux tags.
J'arrive seulement à ce qu'il me fasse apparaître autant les articles avec un seul tag que ceux ayant les deux.

Je ne sais pas si je suis clair. n'hésitez pas à me poser la question et à répondre Smiley cligne
merci par avance!
J'ai l'impression que tu te contredis dans ce que tu dis donc je pense pas avoir tout compris, dans le doute, c'est peut etre cela dont tu parles :
SELECT * FROM table WHERE tag = 'ton_1er_tag' OR tag = 'ton_2eme_tag'


Avec la structure de ta table et un exemple, je verrais tout de suite plus clair Smiley smile
merci de me répondre!

alors non, ce n'est pas "OR" que je cherche, j'ai déjà essayé. Smiley cligne
et "AND" ne marche pas non plus.
ce que je veux, c'est que dès qu'il y a 2 tags cochés, il me cherche uniquement les articles remplissant les deux conditions. pas l'un, l'autre ou les deux...uniquement les deux.
vois tu?
Modifié par hophop (28 Oct 2012 - 18:54)
Le AND devrait normalement convenir..

Avec le OR, effectivement, ca te donnera le tag1 ou le tag2 donc les 2.

Avec AND, les deux tags doivent être obligatoirement "vrais" donc tu n'auras pas que tag1 ou tag2 dans tes résultats...

Le fait que tu dises que ca ne convient pas vient peut être du fait que dans ta structure de ta table, tu n'as pas plusieurs colonnes pour y mettre des tags donc tu ne peux vérifié s'ils sont vrais tous les deux...

Tu peux donner la structure de ta table article ?
merci encore.
alors grossièrement voilà ce que j'ai:
table 'articles' => 'id', 'titre' et 'texte'.
table 'categories' => 'id', 'nom'
(c'est celle qui contient mes 3 catégories de filtres (chronogique, geographiques, thematiques))
table 'filtres' => 'id', 'id_categories', 'nom'
(Tous les filtres reliés a leur catégories respectives.)
tables 'articles_filtres' => 'id_articles', 'id_filtres'
(celle qui relie donc les différents filtres aux articles)

Je me dis que peut être, il vaudrait mieux que je fasse 3 tables (chronogique, geographiques, thematiques) avec leurs filtres plutôt que comme j'ai fait...et là le AND devrait marcher
non?