2012-03-26 11 views
12

Mam pytanie. Spróbuję opisać moją sytuację:Potrzebuję pobrać dane produktu z bazy danych mysql

Mam instalację wordpress, w której zainstalowałem codeigniter. To wszystko idzie dobrze i mam również dostęp do bazy danych. Teraz mam zainstalowaną wtyczkę dla wordpress o nazwie: Woocommerce. Dzięki tej wtyczce możesz przechowywać produkty i dane produktu w bazie danych. Teraz muszę uzyskać dostęp do danych z moich produktów woocommerce w aplikacji codeigniter.

woocommerce przechowuje swoje produkty tak:

Wszystkie produkty przechodzi w tabeli o nazwie: wp_posts w tej tabeli jest kolumna zdefiniowana nazywa: post_type woocommerce identyfikuje posty jak produkty kiedy post_type jest ustawiony produktu [ duh!].

Teraz jest inna tabela o nazwie wp_postmeta. W tej tabeli wszystkie dane produktu są zapisywane w 4 kolumnach: 1. meta_id [identyfikator metarow] 2. post_id [identyfikuje się w tabeli wp_posts] 3. meta_key [tam będzie kilka klawiszy do niego, takich jak: SALE_PRICE, zbiory obrazów, additional_price etc ..] 4. meta_value [za każdy klucz jest wartość.]

W tabeli wp_postmeta muszę uporządkować wszystkie meta_keys z ich wartościami, jeśli produkt ma meta_key = '_ najmu "i meta_value =" yes ". Więc jeśli to prawda, muszę uzyskać wszystkie inne meta_keys i wartości, gdzie post_id jest taki sam jak produkt do wynajęcia. Mam nadzieję, że nikogo nie mylić ... Na razie mam to zapytanie:

$sql = "SELECT p.id, p.post_title, p.guid, p.post_type, m.meta_key, m.meta_value 
      FROM wp_posts p 
      INNER JOIN wp_postmeta m 
      WHERE p.id=m.post_id 
      AND m.meta_key='_rentable' AND m.meta_value='yes' 
      "; 

ta zwraca tylko meta_key: _rentable i wartości: tak .. Ale też trzeba uzyskać cenę, że produkt.

Odpowiedz

10

Wygląda na to, że próbujesz pobrać kilka danych z różnych wierszy w tym samym stole, co oznacza, że ​​musisz wykonać więcej niż jedno sprzężenie. Czy dostaniesz to, czego szukasz?

$sql = "SELECT p.id, p.post_title, p.guid, p.post_type, m.meta_key, m.meta_value, meta_sp.meta_value as sale_price, meta_ap.meta_value as additional_price 
     FROM wp_posts p 
     INNER JOIN wp_postmeta m 
     INNER JOIN wp_postmeta meta_sp ON p.id=meta_sp.post_id 
      AND meta_sp.meta_key='sale_price' 
     INNER JOIN wp_postmeta meta_ap ON p.id=meta_ap.post_id 
      AND meta_ap.meta_key='additional_price' 
     WHERE p.id=m.post_id 
     AND m.meta_key='_rentable' AND m.meta_value='yes' 
     "; 
+0

Dziękuję bardzo! To działało jak urok. –

Powiązane problemy