@bioforge
Верстающий пыхер

Как организовать фильтр по примеру яндекс маркета, розетки?

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

На данный момент БД выглядит так d100cfb98d.png

Сейчас возникает проблема в том что нужно скрывать лишние параметры в фильтре и подсчитывать кол-во товаров с данным параметром.

Примеры:
https://market.yandex.ru/catalog/54913/list?hid=90... - dl3.joxi.net/drive/0011/2177/780417/151223/c8fc7d2...
rozetka.com.ua/mp3-pmp/fiio/c80016/v2533 - dl3.joxi.net/drive/0011/2177/780417/151223/3b0c487...

Как можно организовать такую структуру фильтра ?
  • Вопрос задан
  • 587 просмотров
Пригласить эксперта
Ответы на вопрос 1
VladimirAndreev
@VladimirAndreev
php web dev
по подсчету - ну ты получаешь массив выбранных фильтров, и применяй их sql-запросом последовательно.
например, если у тебя запросили фильтрацию, чоб в fields с ID=500 было значение 100500 и product_fields был 64, а метро ID=128
то соберется примерно такой sql:

select
    count(DISTINCT p.ID)
from
    products p
        join folder_fields ff on p.folder_id = ff.folder_id
        join fileds f on ff.field_id = f.id
        join product_fields pf on pf.product_id = p.id
where 1=1
    and f.id=500
    and f.name=100500
    and pf.value=64
    and p.metro_id=128


а скрывать лишнее - фильтр должен реагировать на уже сделанный выбор...
например, пользователь хочет компьютеры - выводишь фильтры по процессорам / видеокартам и т.п., хочет смартфоны - производителя и операционку ну и в таком духе.
можно ajax'ом, можно сразу захардкодить эту вложенность и грузить ее пользователю json'ом...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы