Форма расширенного поиска?

Мое приложение имеет расширенную форму поиска, которая использует Ajax / PHP для запроса базы данных. Мои поля формы похожи: Name , ID , Level , Class .

Если пользователь вводит Level и class он отобразит всех учащихся с одинаковым уровнем и классом.

Теперь я хотел бы улучшить его, чтобы пользователи могли выбирать между AND / OR, например, он хочет искать студентов с одинаковым именем, но либо на уровне a, либо в классе a.

 select * from table where name like name AND (level == level OR class == class) 

Каков наилучший способ добиться этого? Есть ли какой-либо метод или что-то похожее на поиск Solr и Hibernate?

Solutions Collecting From Web of "Форма расширенного поиска?"

Вы можете использовать несколько флажков для уточнения поиска.

 <input name="Level" type="checkbox" value="Level-Value" /> <input name="Class" type="checkbox" value="Class-Value" /> 

Затем вы можете сделать один запрос на основе выбора флажка, как это.

 if($check1=='Level' && !$check2=='Class'){//result for level only select * from table where name like name AND level == level AND class !== class } elseif(!$check1=='Level' && $check2=='Class'){//result for class only select * from table where name like name AND level !== level AND class == class } elseif($check1=='Level' && $check2=='Class'){//result for level and class select * from table where name like name AND level == level AND class == class }