1

我的应用程序有一个高级搜索表单,它使用 Ajax/PHP 来查询数据库。我的表单字段如下:Name, ID, Level, Class.

如果用户输入Levelclass它将显示所有具有相同级别和班级的学生。

现在我想改进它以允许用户在 AND/OR 之间进行选择,例如他想搜索同名但在 a 级或 a 类的学生。

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

实现这一目标的最佳方法是什么?是否有任何技术或类似 Solr 和 Hibernate Search 的东西?

4

1 回答 1

0

您可以使用多个复选框来细化搜索。

<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
}
于 2013-05-05T15:14:37.097 回答