Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Помогите составить запрос


Recommended Posts

Всем привет!

Вопрос может быть очень глупый для Вас, но я не знающий SQL и PHP буду Вам очень благодарен за помощь!

Исходные данные: 20 тыс товар и 200 категорий, половина товара у меня раскидана правильно по нескольким категориям +  добавлена в категорию РАЗОБРАТЬ, а остальная половина НОВОГО товара добавилась только в одну категорию РАЗОБРАТЬ

 

Задача: В opencart если ограничение, можно выбрать только одну категорию для фильтра в админке, а мне нужно сделать так что товар вывелся только если находится в одной категории, а все остальные игнорируются 

 

Примечание:

Смотрите, когда я фильтрую товар по категории в URL ссылке выводится filter_category_id=!1

что сюда можно добавить, что бы исключить все остальные категории?

 

Заранее большое спасибо!

Надіслати
Поділитися на інших сайтах


1 hour ago, nibbl said:

Задача: В opencart если ограничение, можно выбрать только одну категорию для фильтра в админке, а мне нужно сделать так что товар вывелся только если находится в одной категории, а все остальные игнорируются

стандартный фильтр товаров в опенкарте такого не умеет.

Его можно кастомизировать, конечно, это не сложно, но потребуется добавлять новые пользовательские элементы в форму\представление (вьюху), редактировать контроллер и модель для странички с фильтром товаров в админке. Например, можно добавить галочку типа "товар отсутствует в иных категориях, кроме выбранной" и научить опенкарт работать с этой галочкой. В паре слов инструкцию не возьмусь написать, пожалуй.

 

Если Вам нужно разого что-то с этими товарами сделать или просто найти\посмотреть, то нет ничего проще:

Spoiler

-- укажите ниже id-шник категории "разобрать". В примере стоит 82
-- и запрос целиком вернет вам id-шники всех товаров, 
-- который входят ТОЛЬКО в эту категорию и не принадлежат другим категоирям
-- ясное дело, префикс таблиц "ос_"  у Вас может быть другим
SET @category_razobrat = 82;

SELECT
  pd.product_id, pd.name, p.model
FROM oc_product_to_category p2c
  JOIN oc_product p ON p2c.product_id = p.product_id
  JOIN oc_product_description pd ON p2c.product_id = pd.product_id
WHERE p2c.category_id = @category_razobrat
AND NOT EXISTS (SELECT
    *
  FROM oc_product_to_category p2c_subq
  WHERE p2c_subq.product_id = p2c.product_id
  AND p2c_subq.category_id != @category_razobrat)

 

 

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.