Задать вопрос
Профиль пользователя заблокирован сроком «навсегда» без указания причины
  • Как сделать категории в интернет магазине?

    @ndlx Автор вопроса
    ThunderCat, Удивительно что на такой фундаментальный вопрос нет ответа "а как правильно"
    Гайды обходят это стороной, а вопросы на stackoveflow заканчивают рекомендаций делать Adjacency List
    Хотя ради интереса посмотрел что WooCommerce, который на Wordpress тоже хранит их так, но как забирает (а он может, все дочерние товары любой категории) не разобрался из-за php...

    Ну может кто-то из озона или ягодок сольет этот секретный секрет как делать тру каталог :)
  • Как сделать категории в интернет магазине?

    @ndlx Автор вопроса
    На счет root id
    Даже если укажем root id для Смартфона как Электроника то это не решит проблему
    Ведь может быть 3,4,10 уровней вложенности
    Как тогда получим все Телефоны? Ведь у всех дочек будет root id как Электроника :)

    В целом понятно что ты предлагаешь как CTE запрос
    Но у меня нет проблемы узнать всех дочек по родителю
    А вопрос был также в том как потом запрашивать товары, годится ли WHERE IN [] запрос
  • Как сделать категории в интернет магазине?

    @ndlx Автор вопроса
    ThunderCat, Ну например сделаем так

    Электроника
    - Телефоны
    -- Смартфоны
    - Планшеты

    В бд это
    ID TITLE PARENT_IN
    1 Электроника null
    2 Телефоны 1
    3 Планшеты 1
    4 Смартфоны 2

    Поэтому и сказал что может быть сколь угодно вложенным
    Товар может быть привязан к любой, хоть родительской всего, хоть к самой дочерней

    Поэтому $парент_айди тут не канает :)
  • Как сделать категории в интернет магазине?

    @ndlx Автор вопроса
    P.S решением в лоб мне кажется является если получить все категории, затем на бэки вычислить потомков родителя, ну и сделать запрос на товары где будет WHERE IN ( массив категорий )
    Но выглядит сомнительно
  • Как сделать категории в интернет магазине?

    @ndlx Автор вопроса
    Ипатьев, Поискал, за неделю не было такого вопроса :) Вы не помните как назывался вопрос? Возможно я не правильно его сформулировал