Php 在第二个While循环中执行While循环以获取子类别
我需要在第二个while循环中写入while循环以获得子类别。我只考了二级。我怎样才能达到三级Php 在第二个While循环中执行While循环以获取子类别,php,mysql,arrays,json,menu,Php,Mysql,Arrays,Json,Menu,我需要在第二个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
<?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) . ')';
?>
这是实际的树视图
您可以创建递归函数来获取所有子类别:
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));
将另一个while循环放入第二个while循环中,或者创建一个递归的while循环function@Philipp实际上,我不明白在第二个while循环中我将在哪里编写新的while循环。Plz帮助