Перейти к содержимому


Фото
- - - - -

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


  • Чтобы отвечать, сперва войдите на форум
6 ответов в теме

#1 Dmitry86

Dmitry86
  • Пользователь
  • 165 сообщений
  • Пользователь
  • Откуда:Мск

Опубликовано 15.07.2020 - 10:13

Добрый день!

 

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

 

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



#2 phukortsin

phukortsin
  • Фрилансер
  • 1 112 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 15.07.2020 - 11:35

AND p.brand_id IN (1,5,24)



#3 Dmitry86

Dmitry86
  • Пользователь
  • 165 сообщений
  • Пользователь
  • Откуда:Мск

Опубликовано 15.07.2020 - 14:50

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

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



#4 shooroop

shooroop
  • Фрилансер
  • 1 125 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Antarktida

Опубликовано 15.07.2020 - 15:33

а где в вашем запросе сами бренды



#5 Dmitry86

Dmitry86
  • Пользователь
  • 165 сообщений
  • Пользователь
  • Откуда:Мск

Опубликовано 15.07.2020 - 15:45

а где в вашем запросе сами бренды

 

В этом я и пытаюсь разобраться)



#6 phukortsin

phukortsin
  • Фрилансер
  • 1 112 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 15.07.2020 - 17:33

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

 

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



#7 Dmitry86

Dmitry86
  • Пользователь
  • 165 сообщений
  • Пользователь
  • Откуда:Мск

Опубликовано 15.07.2020 - 17:58

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





0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых