Автор Тема: Выборка по категориям, и подкатегориями подчинения SQL  (Прочитано 72 раз)

12 Апреля 2016, 17:40:51
  • Старожил
  • ****
  • Сообщений: 325
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день!
Нужен запрос к БД с выборкой по категориям, и подкатегориями подчинения.
В принципе запрос  такой
SELECT cp.id_category, cp.name, cp.id_shop, cp.id_lang, cl.id_category as id_category_p, cl.id_parent  FROM `ps_category_lang` cp
LEFT JOIN `ps_category` cl ON (cp.`id_category` = cl.`id_category`)
Но вот как сделать с сортировкой по их порядку подчинения?
В  id_parent  находится номер id_category  к которому он относиться в таблице ps_category_lang
В примере запрос, он выводит таблицу, но не ставит по подчинению.
Как это можно решить?
Запрос во вложении.
Должно быть так:

Корень   
Главная
Каталог
Весна-1
Для девочек-весна
Для мальчиков-весна
Для весна-весна новая
И т.д

Спасибо.
12 Апреля 2016, 17:43:34
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86180
  • Репутация: +25412/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Построение дерева категорий есть в модуле blockcategories. Возьмите запрос из этого модуля и адаптируйте под свой.
12 Апреля 2016, 18:01:02
Ответ #2
  • Ветеран
  • *****
  • Сообщений: 20849
  • Репутация: +25278/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
12 Апреля 2016, 18:13:27
Ответ #3
  • Старожил
  • ****
  • Сообщений: 325
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо за подсказку!
А с ORDER BY `level_depth` ASC что-то я не понял... куда его ставить в запрос?
12 Апреля 2016, 18:36:40
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 2532
  • Репутация: +58/-4
  • Сообщество PrestaShop
    • Просмотр профиля
Одним SQL запросом не сделать с сортировкой по вложенности.
Это только в скрипте или процедуру создавть нужно.
12 Апреля 2016, 18:57:12
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 13452
  • Репутация: +14561/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Есои вы создавали категории по порядку, тогда можно отсортировать по ид родителя, добавив в запрос
ORDER BY `cl`.`id_parent` ASC