2017-12-30 68 views
0

子サブカテゴリを取得するためにwhileループwhile whileループを記述する必要があります。私は2番目のレベルにしか達しません。私はどのようにして3級を取得できますか?Whileループwhile第2 whileループwhile子サブカテゴリを取得する

<?php 

include('db.php'); 
$sql = mysqli_query($db,"select cat_id,product from category where parent_id=0"); 
// parent_id categories node 
$categories = array("Categories" => array()); 

while ($row = mysqli_fetch_array($sql,MYSQLI_ASSOC)) { 
    $cat_id = $row['cat_id']; 
    $ssql = mysqli_query($db,"select cat_id,product from category where parent_id='$cat_id'"); 



    // single category node 
    $category = array(); // temp array 
    $category["cat_id"] = $row["cat_id"]; 
    $category["product"] = $row["product"]; 
    //$category["media"] = $row["media"]; 
    $category["sub_categories"] = array(); // subcategories again an array 

    while ($srow = mysqli_fetch_array($ssql,MYSQLI_ASSOC)) { 
     $subcat = array(); // temp array 
     $subcat["cat_id"] = $srow['cat_id']; 
     $subcat["product"] = $srow['product']; 
     // pushing sub category into subcategories node 
     array_push($category["sub_categories"], $subcat); 
    } 

    // pushing sinlge category into parent_id 
    array_push($categories["Categories"], $category); 
} 
echo ((isset($_GET['callback'])) ? $_GET['callback'] : "") . '(' . json_encode($categories) . ')'; 
?> 

これは、あなたがすべてのサブカテゴリを取得するために再帰関数を作成することができ、実際のツリービュー

enter image description here

+0

ループまたは作成する間に、第2の内部で別のwhileループを入れて再帰関数 – Philipp

+0

@Philipp実際、私は2番目のwhileループの中で新しいwhileループをどこに書くのか理解できません。 Plzのヘルプ –

答えて

0

です:

function getSubCategories($cat_id) { 

    $sql = mysqli_query($db,"select cat_id,product from category where parent_id='$cat_id'"); 

    $sub_categories = array(); 
    while ($row = mysqli_fetch_array($sql, MYSQLI_ASSOC)) { 

     $cat_id = $row['cat_id']; 

     // single category node 
     $category = array(); // temp array 
     $category["cat_id"] = $row["cat_id"]; 
     $category["product"] = $row["product"]; 
     //$category["media"] = $row["media"]; 
     $category["sub_categories"] = getSubCategories($cat_id); // subcategories again an array 

     array_push($sub_categories, $category); 

    } 
    return $sub_categories; 

} 


// parent_id categories node 
$categories = array("Categories" => getSubCategories(0));