如何使用php和mysql计算树中的节点数。
## id ## parent ## child ##
0 0 A
1 0 B
2 0 C
3 2 D
4 1 E
5 1 F
6 2 G
7 3 H
8 5 I
9 5 J
10 5 L
11 5 M
12 1 N
13 0 O
14 0 P
A
/ \
B C
/ \ / \
E F D G
我们如何计算子节点
条件A - 仅第1代2(B,C)如果完成这2个计数A去创建新树
喜欢
A
/ \
O P
我如何给出这个条件。
答案 0 :(得分:0)
欢迎来到递归的世界。这在MySQL中并不容易,所以我认为你最好在PHP的帮助下做到这一点。例如,创建一个这样的函数:
function countNodes($rootNode)
{
$result = 1; // The rootnode itself.
// Query children of $rootnode.
// I leave this to you.
foreach($subNode in $children)
$result += countNodes($subNodes);
return $result;
}
你看到这个函数不断为每个节点下找到的每个子节点调用自己,有效地遍历所有树。