如何计算使用php mysql中的节点数

时间:2012-10-12 07:51:53

标签: php mysql

如何使用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

我如何给出这个条件。

1 个答案:

答案 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;
}

你看到这个函数不断为每个节点下找到的每个子节点调用自己,有效地遍历所有树。