1

我现在很困惑。

我有一个要为 MLM(多层次营销)公司开发的数据库。所以,有一个成员数据库..每个成员都有唯一的 ID,称为成员代码..并且所有成员下都有成员..每个成员在他/她下有 3 个成员..并且这 3 个成员可以有相同的..所有成员被添加到名为“tbMembers”的同一个数据库表中,并且对于每个成员都有一个“parentID”,我在该成员的下面添加成员的成员代码?...对吗?

现在的问题是.. 我想要一个 SQL 查询,它可以在.. 像 'John Doe' 下有三个成员,分别名为 'Suzan' 和 'Ellie' 和 'Smith'。并且“Suzan”在她的手下也有 3 名成员...... Ellie 也是如此。例如……“John Doe”的下线有大约 300 名成员?他得到报酬任何成员在他的下线下添加 3 个成员,该成员添加 3 个成员也得到报酬,他的上线成员也得到一些钱。我可以得到 1 个特定会员以下任何会员的下线级别编号吗?并且可以根据他手下加入的 3 名成员计算他的收入。

我正在使用 PHP 并使用 My-SQL。怎么做?请帮帮我。

4

4 回答 4

2

我不知道你的表结构,但这是算法:

这是php代码

    function get_recursive_users($pid)
    {
        $users = //get a query from users that parentid= $pid;
            /*for example db::query('SELECT * FROM `members` WHERE parentid="'.$parentid.'"');*/




        foreach($users as $user)
        {
            return get_recursive_users($user['pid']);
        }

    }

    $parentid = 'your current user Pid'
    get_recursive_users($parentid);
于 2013-05-19T06:50:35.067 回答
0

我们找到了其他解决方案来快速了解用户链。

每个成员都有'path'字段,由他上面的用户组成,包括他的id:'1,5,7,8,9,'

您需要为每个新用户生成此路径。我们仍然使用 'id' 和 'pid'

于 2013-06-27T13:18:03.847 回答
0

这个怎么样:

function get_downline_list($pid)
{
    /* query the database for all users ('SELECT * FROM `members` );*/
    foreach($row = mysql_fetch_assoc($result))
    {
       $allUsers[$row[parentID]][]=$row;
    }

    $dowlnineCount=1;
    $nextDownline=$allUsers[$pid];

    while($nextDownline && count($nextDownline)){
       $allDownlines[$dowlnineCount]=$nextDownline;

       foreach($nextDownline as $user){
           $anotherDownline[]=$user;
       }

       $nextDownlnine=$anotherDownline;
    }
}

我匆匆忙忙,因为我的笔记本电脑没电了……我会在几分钟后查看代码。

于 2013-05-22T01:49:21.620 回答
-1

我编写了这段代码,这为我的传销软件返回了我想要的有效数据。

function getDlink($parent, $level){
    $users = $this->db->query('SELECT * FROM `member` WHERE parent_id="parent_id"')->result_array();
    static $arr = array();
    if ($users != null){
        foreach ($users as $user){
            $this->db->where('id', $user['id']);
            $u_data = $this->db->get('test')->row_array();
            array_push($arr, $user['id']);
            $parent_child = $user['id'];
            $this->getDlink($parent_child, 0);
        }
    }
    return $arr;
}
于 2021-03-15T07:26:14.950 回答