6

用户表

在此处输入图像描述

在注册时,每个用户都必须把 parent_id ,谁注册在 parent_id 下,所以我为它制作了不同的表

赞助商表

在此处输入图像描述

之后像那样做树

在此处输入图像描述

我想计算这样的记录

在此处输入图像描述

所以请指导我如何计算这样的记录,或者我有什么方法可以说这种计数我必须在数据库中更改,提前谢谢

4

3 回答 3

10

我在表中有邻接模型结构,所以我得到了很好的解决方案 count user_id under parent_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

我猜你正在搜索这个http://www.sitepoint.com/hierarchical-data-database-2/

它被称为TREE TRAVERSAL。好吧,在您的情况下,您可以将其仅用于计数。
可以在此处找到有关该主题的更多信息树数据结构

于 2012-05-07T06:58:09.827 回答
0

对于分层数据存储,您可以看到Nested Set Model. 详细参见http://en.wikipedia.org/wiki/Nested_set_model。希望它能完美地满足您的目的。

于 2012-05-07T07:36:21.200 回答