Как стать автором
Обновить

Комментарии 16

спасибо, прочитаю!
Не используйте костыли. Попробуйте nested sets.

http://dev.mysql.com/tech-resources/articles/hierarchical-data.html
спасибо:) очень интересно, жаль не по русски, у мя англ 30%-процентный тока:)
Тут есть по русски http://www.getinfo.ru/article610.html
The requested URL /article610.htm was not found on this server.
заработала
спасибо) (чото у мя как то разбитые комментарии вышли)
Сильно подозреваю, что автору стоит ознакомится с азами SQL, в частности, с выборками из нескольких таблиц. Неужто задачи настолько нетривиальные, что базовые средства не помогают?
да не помогают, ща покурю выложу пример
Значит меняйте алгоритм.
НЛО прилетело и опубликовало эту надпись здесь
Не путайте хранимки с расширением непосредственно мускуля. Для хранимок нужно всего-лишь соответствующее право на базу иметь.
Может, заодно и вьюшки (VIEWs) посмотрите? Тоже пригодится
Хранимые процедуры не сильно облегчат возникшую у вас проблему, а если хостинг ещё и покупной, то про хранимки можно забыть. Я лично стараюсь избегать рекурсии следующим образом:

Допустим есть список категория следующего вида:

Id
parentId

Есть товар который имеет Id категории. Необходимо, по какой то выбранной категории выводить товары всех подкатегорий. Решение очевидно – рекурсия на стороне php или mysql. Это можно обойти если использовать дополнительную колонку в таблице категорий которая имеет в своём значении перечень всех подкатегорий по отдельной категории, то есть:

Id
parentId
childIds // 10,12,23,19

То есть необходимо однажды выполнить рекурсивный запрос для поиска всех Id подкатегория по конкретной категории и сохранить. Дальше просто. Изначальная проблема решается 2-мя запросами. Первым достаём значение childs, вторым получаем все товары

Select childsId from category where Id=10;
Select * from product where category id in (childsId);

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации