2016-10-12 4 views

ответ

0

Используйте этот код. Примечание. Похоже, вы пытаетесь получить несколько фрагментов данных из разных строк в одной таблице.

$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

Нет, не так. Я хочу, как этот массив ( [first_categoryid] => 88 [first_category_name] => Визитки ) Массив ( [second_categoryid] => 98 [second_category_name] => Подпись [parent_categoryid] => 88 ) Массив ( [second_categoryid] => 99 [second_category_name] => Стандартный [parent_categoryid] => 88 ) Массив ( [second_categoryid] => 101 [second_category_name] => Ul tra толщиной [parent_categoryid] => 88 ) –

+0

Hi User42! Он не работает, он дает мне ошибку. MySQL возвращает пустой набор результатов (т. Е. Нулевые строки). –

0

Ну я с помощью кода, как bcoz я не нашел какого-либо конкретного решения с помощью MySQL Query, поскольку его глубина категории 3 уровня. Его рабочий и проверенный код.

$all_categories = get_categories(array("taxonomy" => "product_cat", "parent" => 0, "show_count" => true)); 
     foreach ($all_categories as $cat) { 
       $category_id = $cat->term_id;  
       $sub = get_categories(array("taxonomy" => "product_cat", "parent" => $category_id)); 
       $wpdb->query($wpdb->prepare("INSERT INTO product_category(cat_id, cat_name, parent_id) 
       VALUES (%d, %s, %d)", array($category_id, $cat->name, $cat->category_parent))); 
       if(!empty($sub)){ 
        foreach($sub as $subcat){ 
         if($subcat->category_parent != ''){ 
          $subcatid = $subcat->term_id; 
          $wpdb->query($wpdb->prepare("INSERT INTO product_category(cat_id, cat_name, parent_id) 
          VALUES (%d, %s, %d)", array($subcatid, $subcat->name, $subcat->category_parent))); 
         } 
          $thirdlevel = get_categories(array("taxonomy" => "product_cat", "parent" => $subcatid)); 
          if(!empty($thirdlevel)){ 
           foreach($thirdlevel as $thirdcat){ 
            if($thirdcat->category_parent != ''){ 
             $lastcatid = $thirdcat->term_id; 
             $thirdarray = array('cat_id'=> $lastcatid, 'cat_name'=>$thirdcat->name, 'parent_id'=> $thirdcat->category_parent); 
            $wpdb->query($wpdb->prepare("INSERT INTO product_category(cat_id, cat_name, parent_id) 
            VALUES (%d, %s, %d)", array($lastcatid, $thirdcat->name, $thirdcat->category_parent))); 
            } 
           } 
          }  
        } 
       } 
     }  

после этого кода вы можете использовать этот запрос для извлечения всех данных из новой таблицы.

ВЫБОР t1.cat_id КАК lev1, t1.cat_name AS lev1name, t2.cat_id А.С. CAT2, t2.cat_name AS cat2name, t3.cat_id А.С. lev3, t3.cat_name AS lev4 ОТ PRODUCT_CATEGORY AS t1 LEFT JOIN PRODUCT_CATEGORY А.С. t2 ON t2.parent_id = t1.cat_id LEFT JOIN product_category AS t3 ON t3.parent_id = t2.cat_id

Смежные вопросы