Здравствуйте. Очень хорошая и полезная статья
http://phpclub.ru/faq/wakka.php?wakka=Tree/DemoPrintDynamic&v=17kl
Уважуха Вам!!!
У меня такой вопрос: Я пытаюсь заполнить массив из БД. Для этого испоьзовал функцию
// формирование массива из БД
function getTree($id=0) {
// начинаем ветку - массив узлов
$node = array();
// берём все узлы на родительской ветке
$r = mysql_query('select * from table where p_id='.$id.' order by id');
while ($row=mysql_fetch_assoc($r)) {
// добавляем узел на
$node[] = array('id'=>$row['id'],'text'=>$row['text'],'subs'=>0);
}
// прибераемся
mysql_free_result($r);
// есть узлы на текущей ветке
if (count($node)) {
// для всех узлов текущей ветки
foreach($node as $k=>$v) {
// строим дочерние ветки
$node[$k]['subs'] = getTree($v['id']);
}
// возвращаем узел
return $node;
}
// если нет узлов на текущей ветке - так и говорим
return $node;
}
(http://www.sql.ru/forum/actualthread.aspx?tid=373739)
Этот скрипт не очень подходит. Выполняется много селектов из БД, равное кол-ву записей в таблице, при каждом раскрытии ветви.
Можете подсказать более лучший способ формирования массива из БД?
С уважением!