在 PHP 递归中查找从第 n 个子级到顶级的所有中间类别
Find all middle categories from nth child to top level in PHP recursion
我有类别 table:
Category table:
cat_id cat_pid cat_name
1 0 Women's Fashion
2 1 Women Accessories
3 2 Wallets & Cardholders
4 3 Cases
我的父级类别 ID 为 "Women's Fashion (cat_id = 1)",叶级类别 ID 为 "Cases (cat_id = 4)"
我想找到 4 到 1 之间的所有类别。
排列如下:
Array(
[0]=>2
[1]=>3
)
我不知道你用的是mysqli还是PDO所以我写的是基础代码...
<?php
$cats = [];
function find_parent($parent_id){
global $cats;
if ($parent_id > 0){
$q = mysql_query('SELECT cat_pid FROM Category WHERE cat_id = ' . $parent_id);
$r = mysql_result($q, 0, 'cat_pid');
if ($r > 0){
$cats[] = $parent_id;
find_parent($r);
}
}
}
find_parent(4);
array_shift($cats); //it adds first record too and i think you don't want so removing it here...
print_r($cats);
我有类别 table:
Category table:
cat_id cat_pid cat_name
1 0 Women's Fashion
2 1 Women Accessories
3 2 Wallets & Cardholders
4 3 Cases
我的父级类别 ID 为 "Women's Fashion (cat_id = 1)",叶级类别 ID 为 "Cases (cat_id = 4)"
我想找到 4 到 1 之间的所有类别。
排列如下:
Array(
[0]=>2
[1]=>3
)
我不知道你用的是mysqli还是PDO所以我写的是基础代码...
<?php
$cats = [];
function find_parent($parent_id){
global $cats;
if ($parent_id > 0){
$q = mysql_query('SELECT cat_pid FROM Category WHERE cat_id = ' . $parent_id);
$r = mysql_result($q, 0, 'cat_pid');
if ($r > 0){
$cats[] = $parent_id;
find_parent($r);
}
}
}
find_parent(4);
array_shift($cats); //it adds first record too and i think you don't want so removing it here...
print_r($cats);