Forum Webscript.Ru

Программирование => PHP => Тема начата: Enemy от 02 Мая 2003, 17:14:30

Название: проблемка
Отправлено: Enemy от 02 Мая 2003, 17:14:30
Построение дерева иерархии с помощью PHP / MySQ
http://www.activex.net.ru/docs/tree.shtml (http://www.activex.net.ru/docs/tree.shtml)

я использую этот скрипт, но проблемка - рекурсивная функция входит вглубь и.... не выходит :)), зацыкливается.... Может кто что то умное скажет?
Название: проблемка
Отправлено: Макс от 02 Мая 2003, 17:22:28
всегда деревья строил по алгоритму Nested Sets. Проблем не было ни разу. http://dev.e-taller.net/dbtree/
пример использования есть в этом форуме

Рабоочие примеры построения дерева с помощью рекурсии тоже были
http://forums.webscript.ru/showthread.php?s=&threadid=11198&msgnum=25
Название: проблемка
Отправлено: Enemy от 02 Мая 2003, 18:05:51
Цитировать
Макс:
пример использования есть в этом форуме


ты имееш ввиду есть статья? если да - скинь урл (немогу найти).
З.Ы. а в этих Nested Sets не сразу и разберешся...
Название: проблемка
Отправлено: Enemy от 02 Мая 2003, 19:30:15
Сорри. Только что увидел русскую документацию на http://dev.e-taller.net/dbtree/....
Почитал, скрипт хороший, но у меня уже все данные в мускл внесены по принцыпу Id && ParendId, а left and right мне не подходит....
Нужно этот скрипт исправить или другой.
Название: проблемка
Отправлено: Enemy от 02 Мая 2003, 19:47:02
Снова сорри :), нашел баг. скрипт заработал.
Название: проблемка
Отправлено: Enemy от 03 Мая 2003, 17:22:18
снова я со своими деревьями :).


вот этот скрипт с http://www.activex.net.ru/docs/tree.shtml
(он немного ужасно написан, но главное здесь алгоритм)


include( "dbopen.php" );

function ShowTree($ParentID, $lvl) {

global $link;
global $lvl;
$lvl++;

$sSQL="SELECT id,title,pid FROM catalogue WHERE pid=".$ParentID." ORDER BY title";
$result=mysql_query($sSQL, $link);

if (mysql_num_rows($result) > 0) {
echo("\\n");
}

}

ShowTree(0, 0);

mysql_close($link);
 

Мне нужно узнать есть ли у текущего елемента (с ID1) child elements...? Но без дополнительных запросов к базе. Думаю здесь можно воспользоватся счетчиком $lvl...