Мое приложение имеет расширенную форму поиска, которая использует 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?
Вы можете использовать несколько флажков для уточнения поиска.
<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 }