Forum Webscript.Ru
Программирование => PHP => Тема начата: Enemy от 02 Мая 2003, 17:14:30
-
Построение дерева иерархии с помощью PHP / MySQ
http://www.activex.net.ru/docs/tree.shtml (http://www.activex.net.ru/docs/tree.shtml)
я использую этот скрипт, но проблемка - рекурсивная функция входит вглубь и.... не выходит :)), зацыкливается.... Может кто что то умное скажет?
-
всегда деревья строил по алгоритму Nested Sets. Проблем не было ни разу. http://dev.e-taller.net/dbtree/
пример использования есть в этом форуме
Рабоочие примеры построения дерева с помощью рекурсии тоже были
http://forums.webscript.ru/showthread.php?s=&threadid=11198&msgnum=25
-
Макс:
пример использования есть в этом форуме
ты имееш ввиду есть статья? если да - скинь урл (немогу найти).
З.Ы. а в этих Nested Sets не сразу и разберешся...
-
Сорри. Только что увидел русскую документацию на http://dev.e-taller.net/dbtree/....
Почитал, скрипт хороший, но у меня уже все данные в мускл внесены по принцыпу Id && ParendId, а left and right мне не подходит....
Нужно этот скрипт исправить или другой.
-
Снова сорри :), нашел баг. скрипт заработал.
-
снова я со своими деревьями :).
вот этот скрипт с 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");
while ( $row = mysql_fetch_array($result) ) {
$ID1 = $row["id"];
echo("- \\n");
echo("".$row["title"].""." \\n");
ShowTree($ID1, $lvl);
$lvl--;
}
echo("
\\n");
}
}
ShowTree(0, 0);
mysql_close($link);
Мне нужно узнать есть ли у текущего елемента (с ID1) child elements...? Но без дополнительных запросов к базе. Думаю здесь можно воспользоватся счетчиком $lvl...