alestro
@alestro

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

Пока додумался только до того, что бы хранить в отдельной таблицы filters id категории, id атрибута товара и два поля value и sql. В поле value храню критерий фильтра. А в поле sql кусок запроса который нужно добавить для выборки товара. Допустим есть товар - телевизор у него есть атрибут: диагональ экрана. Запросом
select a.name as name, f.value, f.`sql` from c_filters as f join products_attributes as a on f.a_id = a.id where f.c_id=20;

вытаскиваю список всех фильтров по атрибутам и их значения.
Потом приходиться сортировать массив, определенным образом, из-за того, что одному name принадлежит несколько value.
Вроде работает, но и явно решение не есть камельфо, да и помимо фильтрации по атрибутам есть еще вид постоянных фильтров для всех категорий, вроде: цены, цвета, бренда присущие любому товару. Да и способ их хранения в базе отличается, что в свою очередь делает sql запросы при сведении фильтров заметно большими. А если еще и не прикручивать ajax, а передавать значение фильтров гет запросами, то кусок sql в адресной строке - явно не лучшее решение. Что можно со всем этим сделать?
Еще возможно ли загнать несколько таблиц относящихся к товару в индекс sphinx'a и производить поиск по нужным критериям, и насколько это будет логичный подход?
  • Вопрос задан
  • 697 просмотров
Пригласить эксперта
Ответы на вопрос 1
@stascer
web-программист
Можете ознакомиться с моим решением фильтрации с помощью MVA атрибута в Sphinx. Работает намного быстрее, чем через запросы к БД.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы