我有一个名为“contact”的表,其中有一个字段“referred_by_id”,其中存储的值与“contact”表的“id”字段相同
id |姓名 |引用_by_id
1 | | 0
2 | B | 1
3 | C | 1
4 | D | 2
5 | E | 3
从技术上讲,如果我们看到所有成员登记册都在“A”下,因为其中一个在“B”或“C”下,但这两个也在“A”下,而且这种情况一直在继续......
所以最后我想输出的是 A 下的孩子总数,在这种情况下是 4
我为此尝试的一段代码是:
<?php
include('auth/db_config.php');
function countChildren($startId) {
$sql="SELECT id FROM contact WHERE referred_by_id = '$startId' AND deleted=0";
$directDescendents = mysqli_query($conn,$sql);
$count = mysqli_num_rows($directDescendents);
$tmp = 0;
while($row = mysqli_fetch_array($directDescendents)){
$count += countChildren($row[0]);
$tmp++;
echo $tmp;
}
return $count;
}
$numChildren = countChildren('60def34ccaacb2b9d');
echo $numChildren;
?>
但不幸的是它不起作用(显示空白页)。