高级搜索表单? [英] Advanced Search form?

查看:53
本文介绍了高级搜索表单?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

My application has an advanced search form, which uses Ajax/PHP to query the database. My form fields are like: Name, ID, Level, Class.

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

If user enters Level and class it would display all students with same level and class.

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

Now I would like to improve it to allow users to choose between AND/OR, for example he wants to search for students with same name but either in level a or class a.

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

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

What is the best way to accomplish that? Is there any technique or something similar to Solr and Hibernate Search?

推荐答案

您可以使用多个复选框来优化搜索.

You can use multiple checkbox for refining search.

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

然后您可以像这样根据复选框选择进行单个查询.

Then you can do single query based on checkbox selection like this.

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
}

这篇关于高级搜索表单?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆