Получение общего количества узлов в дереве

0

Я создаю простую партнерскую систему (максимум 5 уровней). Таким образом, база данных имеет такую структуру:

Изображение 174551

Столбец " 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;

}

и выход будет выглядеть следующим образом:

Изображение 174551

И теперь я застрял там, где я хочу перечислить общее число дочерних элементов ниже, если я выберу один из родительского агента. Например, если я выбираю:

  1. Agent1

    • всего ребенка: 8
  2. Agent3

    • всего ребенка: 3

Я пробовал любой метод, о котором я могу думать, но не могу поработать с логикой. Любая помощь очень ценится.

заранее спасибо.

Теги:

1 ответ

0

Создайте фактическую структуру данных дерева, и их будет легко подсчитать.

Или вы можете использовать один из многих доступных на Github. Это даже сделано для конкретной структуры базы данных.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню