Обратный ход по дереву

Печать RSS
158

Автор
Дедушка
0
у записи в БД может либо быть, либо не быть родителя, если родителя нет, то он сам родитель.

пример

id param1 param2 id_rod
1 par par
2 par1 par1 1
3 par2 par2 2
в итоге нужно вывести всё дерево, т.е. id 3,2 и главного родителя id 1.

Что то ничего оптимального в голову не идет =(
K

Транклюкаторщик
0
при такой структуре только ресурсоемким циклом можно все это вывести.
Автор
Дедушка
0
2. Укуренная Панда, а какую структуру ты предложить можешь в данном случае?
K

Транклюкаторщик
0
3. Basters, я сам сейчас перед выбором, для сайта своего сейчас выбираю самую оптимальную, читаю много по теме, тесты всякие там.
ganjar рекоммендует nested sets (http://www.getinfo.ru/article610.html ), но как - то она мне не очень нравится.
буду думать
Автор
Дедушка
0
что то сообразил
$query = pg_query('SELECT * FROM kross WHERE id=2');
$result = pg_fetch_assoc($query);

		while($result[id_parant]!=0)
		{
			$id_arr[] = $result[id_parant];
    		$query = pg_query('SELECT * FROM kross WHERE id='.$result[id_parant]);
			$result = pg_fetch_assoc($query);

	    }

вроди получилось собрать все верхние id, если у кого то есть решение по более лучшей структуре БД или лучшему запросу, просьба подсказать, отписать)
Изменил: Женек (18.04.2011 / 10:35)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск