WP Query több meta_key és meta_value

Sziasztok!





Segítséget szeretnék kérni a következőben:





Flutter segítségével létrehoztam egy termékadatbázist. A termékeket lekérdezem, majd egy termékre kattintva eljutok a kiválasztott termékre.





Ennek a terméknek több tulajdonsága van, pl.: szín, méret, magasság, stb.











A termék megjelenés alatt szeretnék egy listát az ugyanolyan méretű és színű termékekről.





Ezt így próbáltam megoldani, de már itt is probléma van (nem csak a 80-as, hanem pl.: a 80/100-as méretűt is kiadja):











$querydetails = "





SELECT wposts.





FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta





WHERE wposts.ID = wpostmeta.post_id





AND wpostmeta.meta_key = ‘nevlegesmeret’





AND wpostmeta.meta_value = 80





AND wposts.post_status = ‘publish’





AND wposts.post_type = ‘post’





ORDER BY wposts.post_date DESC





";











Ennél a lekérdezésnél (méret és szín) nem ad találatot:











$querydetails = "





SELECT wposts.






FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta





WHERE wposts.ID = wpostmeta.post_id





AND wpostmeta.meta_key = ‘nevlegesmeret’





AND wpostmeta.meta_value = 80





AND wpostmeta.meta_key = ‘szin’





AND wpostmeta.meta_value = ‘Barna’





AND wposts.post_status = ‘publish’





AND wposts.post_type = ‘post’





ORDER BY wposts.post_date DESC





";











Próbáltam így is,de így sincs találat:











$querydetails = "





SELECT wposts.*





FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta





WHERE wposts.ID = wpostmeta.post_id





AND (wpostmeta.meta_key = ‘nevlegesmeret’ AND wpostmeta.meta_value = 80)





AND (wpostmeta.meta_key = ‘szin’ AND wpostmeta.meta_value = ‘Standard’)





AND wposts.post_status = ‘publish’





AND wposts.post_type = ‘post’





ORDER BY wposts.post_date DESC





";











A neten sok oldalt átnéztem,de nem találtam megoldást, ezért kérem a segítségeteket.

Hm, szerintem nem jó használod, vagyis elvi hibád van :slight_smile:











Egy joinnal rá kellene fűznöd újra a meta táblát, vagy sub queryzni. De ez egy lekérdezéssel nem fog menni.


Code:

SELECT wposts.*

FROM wp_posts wposts, wp_postmeta metaa, wp_postmeta metab

WHERE wposts.ID = metaa.post_id AND metaa.post_id = metab.post_id AND wposts.ID = metab.post_id

AND (metaa.meta_key = 'egyikmeta' AND metaa.meta_value = 'érték')

AND (metab.meta_key = 'másikmeta' AND metab.meta_value = 'érték')



ORDER BY wposts.post_date DESC








Így viszont működik.

'DjZoNe' wrote on '2010-03-03:




Code:

SELECT wposts.*

FROM wp_posts wposts, wp_postmeta metaa, wp_postmeta metab

WHERE wposts.ID = metaa.post_id AND metaa.post_id = metab.post_id AND wposts.ID = metab.post_id

AND (metaa.meta_key = 'egyikmeta' AND metaa.meta_value = 'érték')

AND (metab.meta_key = 'másikmeta' AND metab.meta_value = 'érték')



ORDER BY wposts.post_date DESC








Így viszont működik.











Nagyon szépen köszönöm a segítséget!


Tökéletesen működik.