Tree/AlLoadPath

Материал из PhpWiki.

Перейти к: навигация, поиск
 Деревья в базах данных =>  Списки смежности =>  Загрузка дерева =>  Загрузка пути
Как загрузить путь к заданной вершине?

popoff

Представленный здесь скрипт возвращает массив, описанный здесь: Внутреннее представление деревьев в программах

<?php
function tree_list_load_path($k_item)
{
  // $k_item - Идентификатор элемента, для которого следует загрузить путь
 
  // Возвращает ложь в случае ошибки
 
  if(empty($k_item)||!is_numeric($k_item)) return false;
 
  $a_tree=array();
 
  while($k_item)
  {
    $r=mysql_query("
      select
        t_catalog_tree.k_item,   #идентификатор элемента
        t_catalog_tree.k_parent, #идентификатор родительского элемента
                                 #   элементы верхнего уровня содержат здесь 0
        t_catalog.s_name         #название
      from
        t_catalog,               #данные
        t_catalog_tree           #дерево
      where
        t_catalog_tree.k_item=".$k_item." and
        t_catalog.k_item=t_catalog_tree.k_item
      limit
        1
      ");
    if(!$r||!mysql_num_rows($r)) return false;
    $f=mysql_fetch_assoc($r);
 
    $a_tree=array(
      array(
        'k_item' => $f['k_item'],
        's_name' => $f['s_name'],
        'a_tree' => $a_tree
      ));
    $k_item=$f['k_parent'];
  }
 
  return $a_tree;
}
?>

Смотрите так же: Загрузка одного пути к вершине для дерева, заданного вложенными множествами Вывод дерева

Личные инструменты