获取树

时间:2018-01-17 03:50:39

标签: php mysql

我正在创建一个简单的联盟系统(最多5级)。所以基本上数据库都有这种结构:

enter image description here

" aff level "列只是额外的东西,所以我知道我列出的正确。

我已成功列出(以子弹格式)父母&每个代理人的孩子。以下是我的代码:

function list_current_agents($aff_parent_id, $aff_level){
$max_level = 5;

if($aff_level <= 5)
{
    $query = "SELECT aff_id, agent_code FROM affiliate WHERE aff_parent_id = '$aff_parent_id' AND aff_level = '$aff_level'";
    $result = db_query($query);
    $row = $result-> fetch_object();
    if($result-> num_rows > 0)
    {
        echo '<ul>';
        do{
            $aff_id = $row-> aff_id;
            $agent_code = $row-> agent_code;

            echo '<li>';
            echo $aff_id .' - '.$agent_code . ' - (level '.$aff_level.')';
            echo '</li>';

            $aff_level = $aff_level+1;

            if($aff_level <= 5)
            {
                list_current_agents($aff_id, $aff_level+1);
            }           
        }while($row = $result-> fetch_object());
        echo '</ul>';
    }
}
return $count;

}

,输出将如下:

enter image description here

现在,如果我选择其中一个父代理,我会想要列出下面孩子的总数。例如,如果我选择:

  1. 剂1

    • 总孩子:8
  2. Agent3

    • 总孩子:3
  3. 我已经尝试过任何我能想到的方法,但无法解决逻辑问题。 非常感谢任何帮助。

    提前感谢。

1 个答案:

答案 0 :(得分:0)

创建一个实际的树数据结构,很容易计算子项。

或者您可以使用one of the many available on GithubThis one is even made for you specific database structure.