Dmitry86 Опубликовано 15 июля, 2020 Жалоба Поделиться Опубликовано 15 июля, 2020 Добрый день! Есть необходимость GET-запросом выбирать товары определенных брендов в YML по id бренда, например: site.ru/yandex.php?brand_id=1,5,24 В моём yandex.php уже есть код, в котором я делаю некоторые выборки через GET: $export_flag = isset($_GET['all']) ? '': ' AND v.exportable=1 '; $utm_flag = isset($_GET['ads_source']) ? 'utm_source='.$_GET['ads_source'].'&utm_term=': ''; $exclude_categories = isset($_GET['exclude_categories']) ? ' AND pc.category_id NOT IN ('.$_GET['exclude_categories'].') ': ''; $simpla->db->query("SELECT DISTINCT pc.category_id FROM s_variants v LEFT JOIN s_products p ON v.product_id=p.id LEFT JOIN s_products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM s_products_categories WHERE product_id=p.id LIMIT 1) WHERE p.visible $exclude_categories AND (v.stock >0 OR v.stock is NULL) $export_flag GROUP BY v.id ORDER BY p.id "); Вопрос, как сюда добавить выборку товаров определенных в GET-запросе брендов. Благодарю за помощь! Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 15 июля, 2020 Жалоба Поделиться Опубликовано 15 июля, 2020 AND p.brand_id IN (1,5,24) Цитата Ссылка на сообщение Поделиться на другие сайты
Dmitry86 Опубликовано 15 июля, 2020 Автор Жалоба Поделиться Опубликовано 15 июля, 2020 AND p.brand_id IN (1,5,24) Я пробовал так: $simpla->db->query("SELECT DISTINCT pc.category_id FROM s_variants v LEFT JOIN s_products p ON v.product_id=p.id LEFT JOIN s_products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM s_products_categories WHERE product_id=p.id LIMIT 1) WHERE p.visible AND p.brand_id IN (1,5,24) $exclude_categories AND (v.stock >0 OR v.stock is NULL) $export_flag GROUP BY v.id ORDER BY p.id "); но не получается.. Цитата Ссылка на сообщение Поделиться на другие сайты
shooroop Опубликовано 15 июля, 2020 Жалоба Поделиться Опубликовано 15 июля, 2020 а где в вашем запросе сами бренды Цитата Ссылка на сообщение Поделиться на другие сайты
Dmitry86 Опубликовано 15 июля, 2020 Автор Жалоба Поделиться Опубликовано 15 июля, 2020 а где в вашем запросе сами бренды В этом я и пытаюсь разобраться) Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 15 июля, 2020 Жалоба Поделиться Опубликовано 15 июля, 2020 Условие на выбор товаров определенных брендов в запросе есть - "p.brand_id IN (1,5,24)". Если не нравится, что они фиксированные, то примерно так: p.brand_id IN (".GET['brand_id'].") Цитата Ссылка на сообщение Поделиться на другие сайты
Dmitry86 Опубликовано 15 июля, 2020 Автор Жалоба Поделиться Опубликовано 15 июля, 2020 (изменено) Условие на выбор товаров определенных брендов в запросе есть - "p.brand_id IN (1,5,24)". Если не нравится, что они фиксированные, то примерно так: p.brand_id IN (".GET['brand_id'].") Сейчас у меня выглядит код вот так: // Выгружаем все товары, даже если у товара не установлен чекбокс выгрузки в xml $export_flag = isset($_GET['all']) ? '': ' AND v.exportable=1 '; $utm_flag = isset($_GET['ads_source']) ? 'utm_source='.$_GET['ads_source'].'&utm_term=': ''; // Исключаем ненужные категории для смарт-баннеров Яндекса $exclude_categories = isset($_GET['exclude_categories']) ? ' AND pc.category_id NOT IN ('.$_GET['exclude_categories'].') ': ''; $brand_ids = isset($_GET['$brand_ids']) ? ' AND p.brand_id IN ('.$_GET['brand_ids'].') ': ''; $simpla->db->query("SELECT DISTINCT pc.category_id FROM s_variants v LEFT JOIN s_products p ON v.product_id=p.id LEFT JOIN s_products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM s_products_categories WHERE product_id=p.id LIMIT 1) WHERE p.visible $brand_ids $exclude_categories AND (v.stock >0 OR v.stock is NULL) $export_flag GROUP BY v.id ORDER BY p.id "); Делаю запрос: site.ru/yandex.php?brand_ids=1,5,24 И не работает. Выгружаются все бренды. Куда копать? Изменено 15 июля, 2020 пользователем Dmitry86 Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.