Допустим, есть несколько параметров для выбора электродвигателей - напряжение питания (220, 380), мощность ("от 10 до 50", "от 50 до 100", "от 100 до 500" и т.п.) и крутящий момент. На самом деле их больше, но для примера пусть будет три. Собственно можно сделать и бегунки "от и до", но суть не в этом. Нет проблемы сделать три формы (выпадающих списка или бегунков), по ним сформировать запрос к базе данных и получить результат. Но проблема в том, что не все комбинации возможны, и хочется чтобы пользователь это видел еще при вводе. Например, если он выбирает 220В, то чтобы и соответствующие мощности, которые есть только у 380В, были недоступны для выбора. Как на яндекс-маректе. Какой обычно алгоритм у таких вещей? Если в лоб, то получается, что при любом изменении формы нужно обновлять всю форму (аяксом) и проверять КАЖДЫЙ пункт выпадающего списка соответствующим запросом к базе? Но если пунктов в списке много и список параметров не один, то запросов получится очень много... Может есть еще принципы?
Три? Формы? Из наличия нескольких параметров НЕ следует, что запросов должно быть несколько! Скорее это зависит от того, сколько раз пользователь что-то изменил в параметрах, и от величины таймаута. Один запрос на каждое следующее состояние. Принцип такой: не надо волноваться о том, что ещё не произошло. Преждевременная эя… оптимизация это зло! Сделай себе "песочницу" и попробуй с ней поработать. Искать: "фасетный поиск" или "faceted search".
http://sphinxsearch.com/docs/archives/1.10/mva.html https://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model
заговорился... три поля конечно же Спасибо, почитаю ) Ну вот допустим, поле мощность. Пользователь выбрал питание 220В. В варианте с фиксированными диапазонами у нас тут должны стать доступными пункты 10-50Вт,50-100Вт, а 100-500Вт и 500-1000Вт должны стать DISABLED. Получается каждый пункт списка надо проверить, если их 4, то получается 4 запроса... Или вынуть DISTINCT'ом все возможные варианты мощности при условии выбора такого питания в массив, а с ним уже работать средствами php? Добавлено спустя 3 минуты 12 секунд: Я можно сказать "китайский кодер", лишь бы работало, а тут такое чтиво мясистое... попробую почитать )
Greider как не твой? Это сложнее sql tags но намного легче EAV. Почитай про mongoDB на русском, думаю сразу будет понятно как всё просто можно сделать.