[英]Display categories and subcategories in php mysql
無法在php mysql中獲取類別和子類別。
在這里,我得到所有類別(貓和子貓):
function get_categories() {
$conn = db_connect();
$query = "select * from categories";
$result = $conn->query($query);
if(!$result) {
return false;
}else {
$result = db_result_to_array($result);
return $result;
}
}
在這里,我得到子貓:
function get_child_cats($parent_id) {
$conn = db_connect();
$query = "select * from categories where parent_id = '".$parent_id."'";
$result = $conn->query($query);
if(!$result) {
return false;
}else {
$result = db_result_to_array($result);
return $result;
}
}
db_result_to_array()
函數在此處:
function db_result_to_array($result) {
$res_array = array();
for($count = 0; $row = $result->fetch_assoc(); $count++) {
$res_array[$count] = $row;
}
return $res_array;
}
數據庫由cat_id, cat_name, parent_id
在這里,我試圖顯示貓和子貓:
if(is_array($categories)) {
echo "<ul>";
foreach($categories as $row) {
if(!$row['parent_id']) {
$childs = get_child_cats($parent_id);
echo "<li>".$row['cat_name'];
if($row['parent_id']) {
echo "<ul>";
foreach($childs as $row) {
echo "<li>".$row['cat_name']."</li>";
}
echo "</ul>";
}
echo "</li>";
}
}
echo "</ul>";
}
但是,我只得到貓,沒有任何子貓。
您寫錯了邏輯,認為您的第一個條件是if(!$row['parent_id']) {
,然后在其中添加條件if($row['parent_id']) {
。 因此,如果滿足“ false”條件並且光標進入“ if”內部,那么對於相同的參數和條件,如何為“ true”執行邏輯
我在下面嘗試過使您的邏輯正確:
foreach($categories as $row) {
if(!$row['parent_id']) {
echo "<li>".$row['cat_name'];
$childs = get_child_cats($parent_id);
}
else {
echo "<ul>";
foreach($childs as $row) {
echo "<li>".$row['cat_name']."</li>";
}
echo "</ul>";
}
echo "</li>";
}
希望這對你有用!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.