ユーザー テーブル
登録時に、すべてのユーザーがparent_idの下に登録するparent_idを入力する必要があるため、別のテーブルを作成しました
スポンサーテーブル
その後、そのようなツリーを作成します
そして私はそのような記録を数えたい
ですから、どうすればそのようにレコードをカウントできますか、またはこの種のカウントについてデータベースで変更する必要があると言う方法があります。事前に感謝します
テーブルに隣接モデル構造があるので、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)
階層データの保存については、 を参照してくださいNested Set Model
。詳しくはhttp://en.wikipedia.org/wiki/Nested_set_modelを参照してください。それがあなたの目的を完全に果たすことを願っています。
このhttp://www.sitepoint.com/hierarchical-data-database-2/を検索していると思います。
といいTREE TRAVERSAL
ます。あなたの場合は、カウントするためだけに使用できます。
そのトピックの詳細については、こちらを参照してください。ツリー データ構造