Вопрос по выбору данных

Cramac

Новичок
Вопрос по выбору данных

Всем привет. Подскажите в таком вопросе. Есть таблица в ней 3 колонки - id, name, categ
Данные выглядят так:
1 первый 0
2 второй 0
3 третий 2
4 четвертый 2
5 пятый 4
6 шестой 5
7 седьмой 3

На основе этого надо построится дерево, categ - 0 означает корень дерева.
Как это можно осуществить?
чтобы получилось что то в виде:

первый
второй
*третий
**седьмой
*четвертый
**пятый
***шестой
и т.д.
 
m2k
Смешно,да..

Cramac
Про рекурсию знаете? НАверное нет... Если не знаете - прочитайте в яндексе. Обязательно.
Пример решения "в лоб"
PHP:
$arr=array(1=>array("name"=>"первый","parent"=>0),
2=>array("name"=>"второй","parent"=>0),
...
7=>array("name"=>"седьмой","parent"=>3)
);
store($arr);
function store(&$arr,$p=0,$tab="")
{
  foreach($array as $id=>$item)
    if($item['parent']==$p)
    {
      echo $tab."*";
      store($arr,$id,$tab."*");
    }
}
 

Cramac

Новичок
Originally posted by Дмитрий Попов
m2k
Смешно,да..

Cramac
Про рекурсию знаете? НАверное нет... Если не знаете - прочитайте в яндексе. Обязательно.
Пример решения "в лоб"
PHP:
$arr=array(1=>array("name"=>"первый","parent"=>0),
2=>array("name"=>"второй","parent"=>0),
...
7=>array("name"=>"седьмой","parent"=>3)
);
store($arr);
function store(&$arr,$p=0,$tab="")
{
  foreach($array as $id=>$item)
    if($item['parent']==$p)
    {
      echo $tab."*";
      store($arr,$id,$tab."*");
    }
}

Вот как у меня работает:
$arr=array(
"1"=>array("name"=>"ïåðâûé","parent"=>0),
"2"=>array("name"=>"âòîðîé","parent"=>1),
"3"=>array("name"=>"òðåò","parent"=>0),
"4"=>array("name"=>"÷åòâ","parent"=>0),
"5"=>array("name"=>"ïÿò","parent"=>0),
"6"=>array("name"=>"øåñò","parent"=>0),
"7"=>array("name"=>"ñåäüìîé","parent"=>3),
"8"=>array("name"=>"øå1ñò","parent"=>0),
"9"=>array("name"=>"ø3åñò","parent"=>7),
"10"=>array("name"=>"øå4ñò","parent"=>0),
"11"=>array("name"=>"øå6ñò","parent"=>9),

);

store($arr,$p="0",$tab="");

function store($arr,$p,$tab)
{

foreach($arr as $id=>$item)
{

if($item['parent']==$p)
{
echo $tab."* $id ".$item['name']."<br>";
store($arr,$id,$tab."*");
}
}
}
 
Сверху