Я создаю простую партнерскую систему (максимум 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;
}
и выход будет выглядеть следующим образом:
И теперь я застрял там, где я хочу перечислить общее число дочерних элементов ниже, если я выберу один из родительского агента. Например, если я выбираю:
Agent1
Agent3
Я пробовал любой метод, о котором я могу думать, но не могу поработать с логикой. Любая помощь очень ценится.
заранее спасибо.
Создайте фактическую структуру данных дерева, и их будет легко подсчитать.
Или вы можете использовать один из многих доступных на Github. Это даже сделано для конкретной структуры базы данных.