1
我被困在一些情况下,我必须计算二进制树的左孩子和右孩子我的数据库结构如下。二进制树儿童计数php mysql
SELECT id,usr_name,rid,pid,l_mem,r_mem,position,joining_date FROM user WHERE id = '$id'"
其中RID是=转诊ID和PID =父ID,
我需要算定父ID的所有叶例如
如果ID 1已经离开2,右3个即时孩子的我需要知道左总成员数和总成员数。
1
/ \
2 3
/\ /\
4 5 6 7
/ \ \
8 9 11
/ \
10 12
/\
13 14
我需要统计的1 所有孩子的我使用这个功能,但只计算最左边,请修改,或解释自己
function leftcount($id) //Function to calculate leftcount
{
$sql = "SELECT id,usr_name,rid,pid,l_mem,r_mem,position,joining_date FROM user WHERE id = '$id'";
$execsql = mysql_query($sql);
$array = mysql_fetch_array($execsql);
//var_dump($array);
(array_count_values($array));
if(!empty($array['l_mem']))
{
$count += leftcount($array['l_mem']);
}
$totalcount = 1 + $count;
return $totalcount ;
}
$left = leftcount($id);
doing -1 because in function 1 + $count.
$left = $left-1;
请不要标记复制或任何其他如果你没有解决方案
嗨阿肖克谢谢你的回答,但出了问题! 左右计数不起作用。 – 2014-12-10 23:38:32
Allcount工作正常吗?因为所有其他功能都依赖于它。 – 2014-12-11 05:26:00
是的allcount工作正常。 – 2014-12-12 08:48:16