1

現時点で混乱しています。

MLM (マルチ レベル マーケティング) 会社用に開発するデータベースが 1 つあります。したがって、1 つのメンバー データベースがあります。各メンバーには membercode と呼ばれる一意の ID があり、すべてのメンバーはその下にメンバーを持ちます。 「tbMembers」という名前の同じデータベーステーブルに追加され、各メンバーには「parentID」があり、そのメンバーの下にメンバーのメンバーコードを追加しますか?..そうですか?

ここで問題となるのは、.. 下にも下にも移動できる SQL クエリが欲しい.. 「John Doe」の下に「Suzan」、「Ellie」、「Smith」という名前の 3 人のメンバーがいるようなものです。そして「スーザン」も彼女の下に3人のメンバーを抱えています..そしてエリーも同じです. たとえば、「ジョン・ドウ」のダウンラインには約 300 人のメンバーがいますか? 彼はダウンラインの下に 3 人のメンバーを追加すると、そのメンバーも 3 人のメンバーを追加し、彼のアップライン メンバーもいくらかの金額が支払われます。特定のメンバーの下にあるメンバーのダウンライン レベル番号を取得できますか?? 彼の下に参加する 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

これはどう:

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 に答える
0

ユーザーの連鎖をすばやく理解するための別の解決策を見つけました。

各メンバーには「パス」フィールドがあり、ID「1,5,7,8,9」を含む、彼より上のユーザーで構成されています。

新しいユーザーごとにこのパスを生成する必要があります。そして、私たちはまだ「id」と「pid」を使用しています

于 2013-06-27T13:18:03.847 に答える
-1

このコードを書いたところ、mlm ソフトウェアに必要な有効なデータが返されました。

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 に答える