{% else-1 %}
wapoleg * 2.59
(14 окт 2014, 19:37) (0/0) [0]
abler98, это да, но в моем случае, у меня сейчас уже больше 2к подкатегорий. Проще получить так и закешировать.
Миледи, там не совсем дерево, т.е. структура как у дерева, но для вапа ни к чему выбирать все значения из бд, вывожу их по pid=$id и так-же кэширую.
что-то вроде:
$id=isset($id)?$id:0;
$r = '...WHERE pid=$id';
Ну вот поэтому и нужно было так-же по текущему $id вывести полный путь, от 1234 до 0
В общем что хотел получил.
wapoleg * 2.59
(14 окт 2014, 18:58) (0/0) [0]
На говнокодил с рекурсией, может кому понадобиться.
[code]
function navig($id, $current=array()){
$arr=$current;
$r = 'подключение к бд'; // Получение pid и name из БД, по текущему значению $id
$arr[]= array('url'=>$id, 'name'=>$r['name']);
if($r['pid']!=0):
$arr = navig($r['pid'], $arr);
endif;
if($current!=0):
asort($arr);
return $arr;
endif;
}

# Собственно запускаем
$navig = navig('Текущий ID категории');
# Далее кэшируем, и выводим в цикле полный путь к текущей папке.
[/code]
если есть иные варианты, предлагайте)
wapoleg * 2.59
(13 окт 2014, 16:46) (0/0) [0]
Есть значит дерево категорий в бд.
id | pid | name
цель получить полный путь до текущей папки не зависимо от уровня вложенности.
т.е.
от текущей 1234 по pid получить все предыдущие id до pid=0 и соответственно вывести все это.
пробовал рекурсию, но как-то криво получается.
примеров тоже не нашел в гугле, в общем помощь нужна. подскажите реализацию, или можно ссылку на пример, разберусь.
  • 1 из 1