Перейти к содержанию
Официальный форум поддержки Simpla

yandex.php Выгрузка только определенных брендов через GET-запрос


Рекомендуемые сообщения

Добрый день!

 

Есть необходимость 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-запросе брендов.

 

Благодарю за помощь!

Ссылка на сообщение
Поделиться на другие сайты

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 ");

 но не получается..

Ссылка на сообщение
Поделиться на другие сайты

Условие на выбор товаров определенных брендов в запросе есть  - "p.brand_id IN (1,5,24)".

 

Если не нравится, что они фиксированные, то примерно так:  p.brand_id IN (".GET['brand_id'].")

Ссылка на сообщение
Поделиться на другие сайты

Условие на выбор товаров определенных брендов в запросе есть  - "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

И не работает. Выгружаются все бренды. Куда копать?

Изменено пользователем Dmitry86
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...