Ciao a tutti, ho un problema con una query che sto cercando di cortuire per ottenere dei dati risultati in wordpress.Posto in questa sezione in quanto il problema non è wordpress ma la query. Si tratta di un sistema di ricerca per hotel,ho delle checkbox dove posso selezionare una o più località, una o più categorie e uno o più servizi.Tralasciando per il momento i servizi una query che potrebbe venir fuori dalla selezione dei checkbox è la seguente:
Da questa query composta da più SELECT annidati mi aspetterei di trovare tutti gli hotel che si trovano a Siracusa ma che hanno categoria ****. In realtà invece mi vengono restituiti tutti gli hotel che si trovano a Siracusa,siano essi di categoria **,*** o ****.Codice PHP:SELECT wp_posts.* FROM wp_postmeta INNER JOIN wp_posts ON wp_postmeta.post_id = wp_posts.ID AND wp_posts.post_status = 'publish' WHERE wp_postmeta.post_id IN(SELECT wp_posts.id FROM wp_posts WHERE wp_postmeta.meta_key='Localita' AND wp_postmeta.meta_value='Siracusa' AND wp_posts.id IN (SELECT wp_posts.id FROM wp_posts, wp_postmeta WHERE wp_postmeta.meta_key='Categoria' AND wp_postmeta.meta_value='****' ) )
Gli AND e gli OR mi sembrano messi nel posto corretto, chi mi sa dire dove sbaglio?![]()

Rispondi quotando
