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

[Решено] Допил стандартного фильтра на логику AND


Recommended Posts

Добрый день, уважаемые форумчане.

 

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

Подозреваю, что мой вопрос решается допилом одного-двух файлов.

Вопрос, собственно в следующем: есть фильтр (см. прикрепленный файл). По "обычной" логике работы фильтра хотелось бы, чтобы при выборе данных опций показывались товары именно выбранного производителя и именно выбранного размера. Но стандартный фильтр показывает товары И выбранного производителя И выбранного размера. В итоге получаем на выходе 5 товаров (логика "Производитель OR Размер"), а хотелось бы на выходе получить один товар HEFEL (логика "Производитель AND Размер").

 

Может быть, мне можно как-то исправить ситуацию, допилив самостоятельно один-два файла?

 

Спасибо.

post-680479-0-17998600-1394432028_thumb.jpg

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


ищите на оф. сайте, есть готовый бесплатный модуль для этого

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

  • 2 years later...
Всем доброго дня.

Столкнулся с этой же проблемой и прежде чем обращаться сюда за помощью, перерыл весь поисковик, но так и не нашел решения своей проблемы.

А проблема тоже в фильтрации, не корректная сортировка.

 

Есть две группы фильтров, к примеру:

 

Бренды (Хитачи и Самсунг)

и

Цвет (Черный и Белый)

 

Если обращаться к одной группе, то фильтр сортирует все четко, но стоит обратиться одновременно к двум группам, то начинается бардак, получается что выбранные Хитачи Черный, выдает все Хитачи и Черный и Белый

Насколько я разобрался, это не правильная логика сортировки фильтра, вместо сочетания "И" фильтр сортирует по принципу "ИЛИ".

На сколько я вник, нужно что то пилить в кодах ниже, но что именно уму не приложу.

 

 

if (!empty($data['filter_filter'])) {

$sql .= " LEFT JOIN " . DB_PREFIX . "product_filter pf ON (p2c.product_id = pf.product_id) LEFT JOIN " . DB_PREFIX . "product p ON (pf.product_id = p.product_id)";

} else {

$sql .= " LEFT JOIN " . DB_PREFIX . "product p ON (p2c.product_id = p.product_id)";

}

 

 

и этот 

 

$sql .= " AND pf.filter_id IN (" . implode(',', $implode) . ")";

 

Ребят помогите дельным советом, что нужно исправить.

Заранее благодарен всем за помощь.

Змінено користувачем Alexale
Надіслати
Поділитися на інших сайтах


  • 5 weeks later...

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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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