Intereting Posts
AWS увеличил число пользователей Как хранить PHP-код внутри таблицы mysql PHPExcel удаляет стиль диаграммы при загрузке шаблона Как рассчитать среднее значение по рейтинговой системе? PHP: как автозагрузочные интерфейсы и тезисы Хранить php datetime в базе данных mysql PHP защищает папку Сценарий Bash для запуска скрипта php Как добавить новый вид (а также новый тип элемента меню) к существующим компонентам Joomla 2.5? Загрузка изображения Codeigniter будет загружаться только в один каталог Справка по регулярному выражению в PHP (8 шестнадцатеричных символов, за которыми следует символ подчеркивания) Как установить цену скидки для всех продуктов в глобальном масштабе в opencart Как я могу добавить новую строку в таблицу каждые 10 столбцов автоматически? Подключение к серверу Apache с использованием SSH и PHP / MYSQL php-массив для преобразования csv с заголовками столбцов

родительские отношения ребенка

Каков наилучший способ получения продуктов, назначенных дочерним категориям при выборе родительской категории?

т.е. если я выбираю категорию верхнего уровня, я бы хотел получить все продукты во всех подкатегориях, а не только продукты, назначенные для выбранного текущего уровня.

поэтому выбор категории 1 приведет к возврату prod_id 1 и 2. Выбор категории 2 приведет к возврату prod_id 2.

**category** id parent_id name 1 0 Vegetables 2 1 Tomatoes 3 2 Yellow Tomatoes **product_category** prod_id cat_id 1 1 2 3 **products** prod_id name 1 Carrot 2 Small Yellow Tomato 

этот запрос, что вы ищете?

 $query =<<<MYSQL SELECT `prod_id` FROM `produdct_category` INNER JOIN `category` ON `product_category`.`cat_id` = `category`.`id` WHERE `category`.`parent_id` = {$selectedParentId} MYSQL; 

Обновленный вопрос, обновленный ответ:

 $query =<<<MYSQL SELECT * FROM `produdcts` INNER JOIN `produdct_category` ON `products`.`prod_id` = `produdct_category`.`prod_id` INNER JOIN `category` ON `product_category`.`cat_id` = `category`.`id` WHERE `category`.`id` = {$selectedCatId} OR `category`.`parent_id` = {$selectedCatId} MYSQL; 

Исправьте имена таблиц и выберите поля, которые необходимо выбрать в первую очередь. Затем сделайте что-то вроде этого:

 SELECT * FROM `products` AS p INNER JOIN `product_category` AS pc ON p.id = pc.prod_id INNER JOIN `category` AS c ON pc.cat_id = c.id WHERE `parent_id` = YOUR_VALUE_HERE