我有来自SO的各种解决方案来创建我的第一个MLM项目,但是现在我陷入总线数(通过递归函数),因为我没有事先的想法,请任何人帮助我。
我的数据库表结构如下(表名成员):
`member_id | member_name | node_left | node_right
其中成员的关系如下:
member_id (Id 101)
/\
/ \
node_left(Id 102) node_right(Id 103)
/\ /\
/ \ blank / \blank
(again) blank node_right (104)
......等等。以上只是一个例子
`
现在我需要计算任何成员的总下线数。例如:假设上面的例子,我想知道 member_id 101 的总下线 如何创建以有限循环结束的递归函数?
请给我任何想法..
答案 0 :(得分:1)
我不确定您是否尝试在此处实施nested set model,但实施效果不正确..
使用嵌套集,表示树结构的左/右值将如下所示:
member 101 (root): left=1, right=8
member 102: left=2, right=5
member 103: left=3, right=4
member 104: left=6, right=7
然后,计算成员#101的孩子就像:
一样简单SELECT COUNT(*) FROM member WHERE node_left > 1 AND node_right < 8
答案 1 :(得分:0)
您可以使用以下代码中的/创建自己的自定义功能,只需检查并尝试为您的案例实施。
function Recursive_getsubcategory($parent_id,$cat_group,$intLevel)
{
global $intLevel;
$sql = "select *,".$intLevel." as level from tbl_name where parent_id = '".$parent_id."' ";
$result = mysql_query($sql);
$cat_name = $result->fetch_array_multiple();
if(count($cat_name) > 0)
{
for($k=0;$k<count($cat_name);$k++)
{
$cat_group[] = array('id'=>$cat_name[$k]['sub_id'],
'parent_id'=>$cat_name[$k]['parent_id'],
'level' => $cat_name[$k]['level']
);
$parent_id[] = $cat_name[$k]['parent_id'];
//Function For Recursive Get Sub Category...
Recursive_getsubcategory($cat_name[$k]['ebay_sub_id'],$cat_group,$intLevel++);
}
}
// count of total downline nodes
return count($cat_group);
}
此代码可能对您的任务有帮助。