如何使用php计算父节点的所有子节点

时间:2018-07-23 07:22:24

标签: php mysql

这是我的桌子

parentID   id
1          0
1          2
3          4
2          3
4          5
5          6
6          7
7          8
8          9
9         10

这是我的php代码---->

 function countChildren($parentId) {

     $link=mysql_connect("localhost","root","");
     mysql_select_db("employee",$link);

     $sql = ("select id from relation where parentID='2'");
     $result=mysql_query($sql,$link);
     $count = mysql_num_rows($result);

     $userinfo = array();

     while ($row_user = mysql_fetch_assoc($result))
    {
       $userinfo[] = $row_user;
    }
    foreach($userinfo  as $userId) 
    {
       $count += countChildren($userId);
    }
return $count;

}

现在我想使用上面的代码来计算父节点的所有子节点,但是我的代码给出了->

这样的错误
  

致命错误:达到最大功能嵌套级别'100',   流产!在第7行的C:\ wamp \ www \ Project \ index.php中

1 个答案:

答案 0 :(得分:0)

只需在查询中进行计数并传递parent_id作为输入即可。使用prepared statements

// ....

$stmt = $db->prepare("SELECT COUNT(*) childrenCount FROM relation WHERE parentID=?");
$parentID = '2'
$sth->execute(array($parentID));

// fetch the result here

$stmt->close();