Как вывести зависимые списки по выбранной категории?

danneo

Честный
Регистрация
13 Ноя 2007
Сообщения
1.526
Реакции
121
Есть таблица категорий, связка через parentid. Например, пользователь выбрал id категории и эти данные сохраняются в url, откуда и берутся переменные для запроса (выборки из БД).
В итоге имеем: что нужно вывести структуру последовательных выпадающих списков, в конце которых список с id, который выбрал пользователь (id из url, в общем).
Выбирать все категории и строить на php пробегая рекурсией - не вариант, т.к. данных много, получается большая нагрузка (при сохранении в память большого массива), от и этого хочу уйти.
Списки примерно так выглядеть должны: главные разделы с выбранным разделом (selected="selected"), далее еще список, где подразделы из выбранного главного раздела и т.д.
 
Получается у вас есть выбранная категория и нужно выбрать всех её родителей до главных категорий, список главных категорий и на уровне каждого родителя ещё все его дочерние узлы?
 
На базе данных будет нехилый рекурсивный запрос, который будет очень прилично тормозить. какая СУБД?
 
Есть таблица категорий, связка через parentid. Например, пользователь выбрал id категории и эти данные сохраняются в url, откуда и берутся переменные для запроса (выборки из БД).
В итоге имеем: что нужно вывести структуру последовательных выпадающих списков, в конце которых список с id, который выбрал пользователь (id из url, в общем).
Выбирать все категории и строить на php пробегая рекурсией - не вариант, т.к. данных много, получается большая нагрузка (при сохранении в память большого массива), от и этого хочу уйти.
Списки примерно так выглядеть должны: главные разделы с выбранным разделом (selected="selected"), далее еще список, где подразделы из выбранного главного раздела и т.д.
Не до конца понимаю, что вам нужно сделать. Напишите в виде текста конечный результат, который вам нужно, а также структуру таблиц с которых нужно сделать выборку. И напишите то, что у вас уже есть: SQL - запрос и PHP-код. Может получится оптимизировать. Согласно того, что вы написали - без пары массивов не обойтись, но думаю это будет быстрее рекурсии на php.
 
Не до конца понимаю, что вам нужно сделать. Напишите в виде текста конечный результат, который вам нужно, а также структуру таблиц с которых нужно сделать выборку. И напишите то, что у вас уже есть: SQL - запрос и PHP-код. Может получится оптимизировать. Согласно того, что вы написали - без пары массивов не обойтись, но думаю это будет быстрее рекурсии на php.
Есть категории, вложенные. В блоке фильтров например, из url берется id подкатегории. При переходе по этому адресу (где есть id подкатегории) необходимо в блоке фильтров вывести дерево списков (зависимых) с уже выбранными значениями. Т.е. Главная категория ->подкатегория->подподкатегория и т.д.
Не могу сообразить, как сделать выборку и вывести потом все это дело на php
 
Есть категории, вложенные. В блоке фильтров например, из url берется id подкатегории. При переходе по этому адресу (где есть id подкатегории) необходимо в блоке фильтров вывести дерево списков (зависимых) с уже выбранными значениями. Т.е. Главная категория ->подкатегория->подподкатегория и т.д.
Не могу сообразить, как сделать выборку и вывести потом все это дело на php
Теория понятно.
Могу только подсказать, что нужно использовать RIGHT или LEFT join. Но может получится очень рекурсивный запрос. Без вида на вашу структуру таблиц, составить конкретный запрос и протестировать его невозможно.
 
Назад
Сверху