задача: из говна слепить конфетку. а точнее, сделать систему "умынх фильтров" а-ля хотлайн.уа (http://hotline.ua/gd/11/132) (еще тут нечто аналогичное http://newcars.ua/catalogue/) вместо существующего угробища.
"умность" и динамичность заключается в том, что при установке очередного фильтра пересматриватеся набор доступных (если нокия не делает телефонов на андроиде, она изчезает из списка производителей.. ну и т.д.)
мысли: при выборе фильтра на сервер аяксом уходит список всех ныне установленных, назад возвращается обновленный список доступных. как всё это будет работать на клиентской части я себе примерно предсталяю.
ступор: как высчитать доступные фильтры, исходя из уже установленных. при условии что вся информация о комбинациях фильтров - строка с записью о каждом "товаре" и структуру таблиц менять низзя…
идиотизмы:
что-то вроде
foreach($exisitingFilters as $field=>$value)
$filters[] = $field.'='.$value;
$filtersStr = join(' AND ', $filters);
$query = 'SELECT COUNT(id) as haveGood FROM items WHERE '.$filtersStr.' AND '.$everyFuckingSingleAvailableFilter;
кажется мне тяжеленным говнокодом. но это пока единственное, что приходит в голову…(
прошу помощи в виде алгоритмов, идей, пиздюлей, да хоть примеров запроса на гугл