6

ユーザー テーブル

ここに画像の説明を入力

登録時に、すべてのユーザーがparent_idの下に登録するparent_idを入力する必要があるため、別のテーブルを作成しました

スポンサーテーブル

ここに画像の説明を入力

その後、そのようなツリーを作成します

ここに画像の説明を入力

そして私はそのような記録を数えたい

ここに画像の説明を入力

ですから、どうすればそのようにレコードをカウントできますか、またはこの種のカウントについてデータベースで変更する必要があると言う方法があります。事前に感謝します

4

3 に答える 3

10

テーブルに隣接モデル構造があるので、parent_idの下にuser_idをカウントする非常に優れたソリューションを取得しました

その関数は、parent_idの下のuser_idをカウントします

function display_children($parent, $level) {
    $count = 0;
    $result = mysql_query('SELECT user_id FROM sponsers '.'WHERE parent_id="'.$parent.'"');
    while ($row = mysql_fetch_array($result))
    {
           $var = str_repeat(' ',$level).$row['user_id']."\n";

                   //echo $var  after remove comment check tree

                   // i call function in while loop until count all user_id 

           $count += 1 +$this->display_children($row['user_id'], $level+1);

    }
    return $count; // it will return all user_id count under parent_id
} 

関数を呼び出す

display_children(999, 0)
于 2012-05-11T05:04:40.143 に答える
0

階層データの保存については、 を参照してくださいNested Set Model。詳しくはhttp://en.wikipedia.org/wiki/Nested_set_modelを参照してください。それがあなたの目的を完全に果たすことを願っています。

于 2012-05-07T07:36:21.200 に答える
0

このhttp://www.sitepoint.com/hierarchical-data-database-2/を検索していると思います。

といいTREE TRAVERSALます。あなたの場合は、カウントするためだけに使用できます。
そのトピックの詳細については、こちらを参照してください。ツリー データ構造

于 2012-05-07T06:58:09.827 に答える