我正在创建一个简单的联盟系统(最多5级)。所以基本上数据库都有这种结构:
" 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;
}
,输出将如下:
现在,如果我选择其中一个父代理,我会想要列出下面孩子的总数。例如,如果我选择:
剂1
Agent3
我已经尝试过任何我能想到的方法,但无法解决逻辑问题。 非常感谢任何帮助。
提前感谢。
答案 0 :(得分:0)
创建一个实际的树数据结构,很容易计算子项。
或者您可以使用one of the many available on Github。 This one is even made for you specific database structure.