Простое рекурсивное дерево в PHP / MySQL

У меня есть эта таблица в MySQL:

id       name            mother
1        grandma         0
2        myuncle         1
3        mymom           1
4        me              3
5        mysister        3
6        myson           4
7        new_grandma_son 1

Я размещаю эту информацию в массиве под названиемdata[]

$data=array(
        array("id"=>1,"name"=>"grandma",        "mother"=>0),
        array("id"=>2,"name"=>"myuncle",        "mother"=>1),
        array("id"=>3,"name"=>"mymom",          "mother"=>1),
        array("id"=>4,"name"=>"me",             "mother"=>3),
        array("id"=>5,"name"=>"mysister",       "mother"=>3),
        array("id"=>6,"name"=>"myson",          "mother"=>4),
        array("id"=>7,"name"=>"new_grandma_son","mother"=>1)
    );

А для создания генеалогического дерева я использую эту рекурсивную функцию:

function tree($data, $mom = 0, $level = 0){
     foreach ($data as $row){
          if ($row['mother'] == $mom) {
               echo str_repeat("-", $level).$row['name']."<br>";
               tree($data, $row['id'], $level);
          }
          else $level++;
     }
}

Когда я вызываю функциюtree($data); это показывает это:

grandma
-myuncle (level 1)
-mymom
----me (level 4??)
---------myson (level 9??)
----mysister
----new_grandma_son (level 4??)

У меня ошибка вelse $level++;, потому что добавляет уровни, когда$row['mother'] != $mom, проходя через все ряды, но я нене знаю, как это сделать. Кто-нибудь знает? Спасибо.

Решение (Фриц ван Кампен):

               tree($data, $row['id'], $level+1);

          // (eliminate this else $level++; )

Спасибо! Я

Ответы на вопрос(3)

Ваш ответ на вопрос