php+mysql求教!!!类似于二叉树求节点数的算法怎么做

如上图所示,要求的是每一个节点所在的位置下面所有孩子的总数,数字就是数量,下面是我写的程序,不知道错在哪?
$sql="select username,prename from {$db_prefix}users where 1 and confirmtime<='$timelimit1' and confirmtime>='$timelimit' and rank>0";
$result=$db->query($sql);
while($rs=$db->fetch_array($result)){
$prename[0]=$rs['prename'];
for($i=0;$i $sql1="select username from {$db_prefix}users where 1 and username='$prename[0]'";
$rs1=$db->query($sql1);
$prename[$i+1]=$rs1['prename'];
$sqlj="update {$db_prefix}jsrec set yj=yj+1 where username='$prename[$i]' and periods='$periods' and rank>0";
$db->query($sqlj);
$db->free_result($sql1);
}
}
$db->free_result($result);

其中username是当前节点名称,prename是父节点名称,yj是当前节点下所含有的总节点数
可是程序运行出来的结果是只能读取当前节点下一层的节点数,错在哪里,求指教图片说明