我有各种各样的解决方案,所以创建了我的第一个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的总下线,如何创建以有限循环结尾的递归函数?
请告诉我..。
发布于 2011-09-23 08:51:28
我不确定您是否在这里尝试过实现嵌套集模型,但是实现看起来不太正确。
对于嵌套集,表示树结构的左/右值如下所示:
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发布于 2011-09-23 08:56:04
您可以从下面的代码中使用/创建您自己的自定义函数,只需检查它并尝试为您的情况实现。
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);}
这段代码可能对您的任务有帮助。
https://stackoverflow.com/questions/7525548
复制相似问题