Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Фильтр товаров по характеристикам
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Фильтр товаров по характеристикам

Страниц (1): [1]
 

1. dmaw - 08 Мая, 2015 - 23:09:01 - перейти к сообщению
Привет!

Задача создать Интернет-магазин с фильтром по техническим характеристикам, эту задачу я выполнил на половину и коряво :)

Сейчас в моём магазине для каждой категории индивидуально можно настроить параметры для технических характеристик т.е. указать название (цвет), тип (select), варианты (красный, синий). При создании товара выбираем категорию и заполняем появляющийся список с техническими характеристиками (выбираем цвет, отмечаем птичками опции и т.п.). На сайте в категории отображается фильтр и список товаров, всё работает как часы :)

Хочется большего! :)
Если взглянуть на Я.Маркет или попроще пример, то у них есть преимущества, которые я хочу внедрить:

- При выборе некоторых параметров, другие становятся неактивными, т.е. товары с такими характеристиками не участвуют в фильтре, скриншот.
- У моего фильтра есть ограничения, в таблице создано 200 колонок, это значит что я могу создать только 200 параметров для одной категории. Также для типа поля select ограничение в 20 вариантов и нет возможности их менять местами.
- Скорость моего фильтра явно хромает, потому как используется LIKE и 2-3 сложных SQL-запроса.

Ищу умного программиста, который сможет простым языком на примерах объяснить как работают фильтры Я.Маркета и/или приведённого примера. Писать за меня ничего не нужно :)

Сейчас моя база устроена так:
1 таблица - категории
2 таблица - атрибуты и варианты для каждой категории
3 таблица - товары
4 таблица - технические характеристики для каждого товара
Показывать свою базу и скрипты не вижу смысла т.к. уверен, что всё спроектировано неправильно.

 

Powered by ExBB FM 1.0 RC1