高级搜索表单?

时间:2013-05-04 22:53:02

标签: php search

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

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

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

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

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

1 个答案:

答案 0 :(得分: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
}