2016-10-12 74 views
0

我的數據庫類別和產品有:如何列出在子類的所有產品的熱門分類

Category Table:ID,姓名,PARENT_ID

Product Table:ID,名稱,CATEGORY_ID

我的類別菜單是:

-Category A 
--Category A1 
--Category A2 
---Category A2a etc.. 

每個產品只有一個相關類別:

Product1 -> Category A1 
Product2 -> Category A2 
Product3 -> Category A2a etc.. 

所有產品類別中的代碼和子類別

category.php?category_id=1 (exp. category A)

<?php 
function FetchAllRows($sql) { 
    global $db; 
    $stmt=$db->prepare($sql); 
    $stmt->execute(); 
    return $stmt->fetchAll(); 
} 

function getCategoryChild($children) { 
    $sql = "SELECT * FROM `category` WHERE `parent_id` = $children"; 
    $rows = FetchAllRows($sql); 

    $sub_category_id = array(); 
    foreach($rows as $row) { 
     // $sub_category_id[$row['id']] = getCategoryChild($row['id']); 
     $cat = getCategoryChild($row['id']); 
     $sub_category_id[] = array(
     'children' => $cat, 
     'category_id' => $row['id'] 
    ); 
    } 

    return $sub_category_id; 
} 

$a = getCategoryChild($category_id); 
echo $in = join(',', array_fill(0, count($a), '?')); 

$query="SELECT * FROM product WHERE category_id IN ($in)"; 

這個我試過的最新應用。我們沒有得到結果。我的英語不是很好。希望在場。直到我想要傳遞到SQL中的數組元素。

+0

的可能的複製[SQL連接相關的問題(http://stackoverflow.com/questions/1255528/sql-join-related-question) –

+0

,直到我要轉移到SQL數組元素。 WHERE IN('category ids'); – ozkiremitci

回答

0

我解決了這個問題。

我刪除了這兩行。

echo $in = join(',', array_fill(0, count($a), '?')); 
$query="SELECT * FROM product WHERE category_id IN ($in)"; 

我只投資CATEGORY_ID的。

foreach($a as $index => $b) { 
    $subs[$index] = $b['category_id']; 
    } 

    $ids = implode($subs,','); 
    $query = $db->query("SELECT * FROM `product` WHERE category_id IN($ids);"); 
相關問題