Requète avec OR -> résultats farfelus
Posté : 29 mai 2008, 14:57
Hello
j'essaye de faire une requète avec une jointure et plusieurs conditions visant à sélectionner des articles correspondant à ma demande afin de les afficher sur ma page ensuite. La requète suivante marche parfaitement :
Seulement je voudrais rajouter également les articles dont term_taxonomy_id=31. Je rajoute donc simplement cette condition dans ma requète avec un OR ce qui donne la requète suivante :
Et là ca ne marche plus ! Lorsque je fais un print_r sur la tableau il me renvoie 568 enregistrements (au lieu de 11 normalement) et avec de nombreux doublons voire 5 fois le même article (qui en plus n'a rien à voir).
Pourtant mon OR xxx semble bien placé, je comprends pas d'ou ca vient.
P.S : j'ai essayé de remplacer wp_term_relationships.term_taxonomy_id=27 OR wp_term_relationships.term_taxonomy_id=31 par wp_term_relationships.term_taxonomy_id IN (27,31) : là ca fontionne bien sauf qu'il me sélectionne plusieurs fois certains articles vu qu'ils contiennent à la fois 27 et 31. C'est donc bien une requète avec OR qu'il me faut mais je n'arrive pas à obtenir des résultats cohérents.
Vous voyiez d'ou ca vient (problème de syntaxe, de disposition...) ?
P.S 2 : je sais pas comment on fait CREATE TABLE pour le schéma des tables
j'essaye de faire une requète avec une jointure et plusieurs conditions visant à sélectionner des articles correspondant à ma demande afin de les afficher sur ma page ensuite. La requète suivante marche parfaitement :
Code : Tout sélectionner
$sql = "SELECT wp_posts.post_title, DATE_FORMAT(wp_posts.post_date, '%d-%m-%Y') as datefr, wp_posts.post_date, wp_posts.post_name, wp_posts.id, wp_term_relationships.object_id, wp_term_relationships.term_taxonomy_id FROM wp_posts, wp_term_relationships WHERE wp_term_relationships.term_taxonomy_id=27 AND wp_posts.id=wp_term_relationships.object_id ORDER BY wp_posts.post_date DESC LIMIT 10";Seulement je voudrais rajouter également les articles dont term_taxonomy_id=31. Je rajoute donc simplement cette condition dans ma requète avec un OR ce qui donne la requète suivante :
Code : Tout sélectionner
$sql = "SELECT wp_posts.post_title, DATE_FORMAT(wp_posts.post_date, '%d-%m-%Y') as datefr, wp_posts.post_date, wp_posts.post_name, wp_posts.id, wp_term_relationships.object_id, wp_term_relationships.term_taxonomy_id FROM wp_posts, wp_term_relationships WHERE wp_term_relationships.term_taxonomy_id=27 OR wp_term_relationships.term_taxonomy_id=31 AND wp_posts.id=wp_term_relationships.object_id ORDER BY wp_posts.post_date DESC LIMIT 10";
Et là ca ne marche plus ! Lorsque je fais un print_r sur la tableau il me renvoie 568 enregistrements (au lieu de 11 normalement) et avec de nombreux doublons voire 5 fois le même article (qui en plus n'a rien à voir).
Pourtant mon OR xxx semble bien placé, je comprends pas d'ou ca vient.
P.S : j'ai essayé de remplacer wp_term_relationships.term_taxonomy_id=27 OR wp_term_relationships.term_taxonomy_id=31 par wp_term_relationships.term_taxonomy_id IN (27,31) : là ca fontionne bien sauf qu'il me sélectionne plusieurs fois certains articles vu qu'ils contiennent à la fois 27 et 31. C'est donc bien une requète avec OR qu'il me faut mais je n'arrive pas à obtenir des résultats cohérents.
Vous voyiez d'ou ca vient (problème de syntaxe, de disposition...) ?
P.S 2 : je sais pas comment on fait CREATE TABLE pour le schéma des tables
