(PHP) помогите с логикой функции дерева

viv
Дата: 02.08.2006 18:50:03
Есть дерево, оно хранится в таблице в MySQL
в виде
idparentchild
123
224
325
446


ну и так далее

parent,child это айдишники в другой таблице

Вот теперь мне нужно построить дерево.
Запросом одним выгрести не получится из MySQL вот думаю постоить рекурсивную функцию. Помогите в задании логики работы этой функции, хотя бы на словах.
4m@t!c
Дата: 02.08.2006 18:59:13
Деревья в базах данных
----------------------------------------
Артисты не приехали, приехали цыгане
Berkut
Дата: 02.08.2006 19:06:35
// строит дерево, начиная с узла $pid

function buildTreeDown($pid)
{
  /*

   1. выбрать всех потомков $pid
   2. если потомков нет, то возвращаем построенное дерево
   3. сохраняем потомка в дереве
   4. для каждого потомка повторяем процедуру с шага 1)

   5. возвращаем дерево
  */
  
  
}
viv
Дата: 02.08.2006 19:10:42
Berkut
// строит дерево, начиная с узла $pid

function buildTreeDown($pid)
{
  /*

   1. выбрать всех потомков $pid
   2. если потомков нет, то возвращаем построенное дерево
   3. сохраняем потомка в дереве
   4. для каждого потомка повторяем процедуру с шага 1)

   5. возвращаем дерево
  */
  
  
}

спасибо.
Что то похожее у меня и получилось :)
viv
Дата: 03.08.2006 10:32:58
Вот что у меня получилось

Прокомпелируйте пожалуйста

автор

function Build_tree ($begin_id, $level=0)
{
$point = 0;
$out_arr = array();
$query = "SELECT * FROM tbl_tree WHERE parent_id = $begin_id";
$result = mysql_query($query);

if (mysql_num_rows($result) > 0){

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$out_arr[$level] = $row['child'];
Build_tree($row['child'],$level);
$level += 1;
}
$point = 1;

} else {
if ($point == 1)
return $out_arr;
}
}