PHP组合查询多条件查询实例代码

先向大家说明需求:按照我们系统的要求,我们将通过部门名称、员工姓名、PC名称、IP地址等等字段来进行组合查询从而得到想要的数据结果。那么,为了简单起见,我们用两个条件(部门名称、员工姓名)的组合查询来向大家说明这一技术技巧。当我们只输入部门名而员工姓名为空值时,那么部门内所有员工信息将被呈现,只有当你同时限制部门与员工姓名时,才能查询出唯一信息。 那就让我们开始。 首先建立查询页面search.PHP,不同于上次单一条件查询,这次我们需要两个条件的组合进行查询

查询


PHP"method="POST">
部门名称

员工姓名:




和上次一样,我们将depart与ename的值通过Post的方法传递给search_result.PHP文件。 然后便到了这次主题的关键,search_result.PHP文件如何接受这两个参数值,并判断当其中一个字段为空值时,如何将其排除查询条件。 怎么理解上面这句话,举例子来说,如果我们单纯地将接收参数的查询语句写成select*frominfowheredepart='部门值参数'andename='员工姓名参数'的话,那么如果其中一个参数为空时我们就将得到select*frominfowheredepart='技术部'andename='',显然,这样的查询很有可能返回空的结果,因为这句查询语句的意思就是,查询所有技术部没有姓名的人的数据,这不是很荒唐么,倒过来如果是select*frominfowheredepart=''andename='sunec',那么它的意思就是查询员工姓名为sunec但是不属于任何部门的人,那自然也是查询不到结果的。 正确的做法应该是,在查询语句中过滤掉那个为空值的的参数。比如,当我们只输入部门名时应该得到select*frominfowheredepart='技术部'。这样,查询语句的意思就变成查询所有部门为技术部员工的信息了,这就是我们想要的。 明确了思路,那么,下一次我们就去实现它! PHP
$link=MysqL_connect("localhost","root","管理员密码");
MysqL_select_db("infosystem",$link);
?> PHP //注释1-----------------------------
$depart=$_POST["depart"];
$ename=$_POST["ename"]; //注释2------------------------
if($depart!=null){
$a="anddepartlike'%$depart%'";} if($ename!=null){
$b="andenamelike'%$ename%'";} //注释3------------------------
$q="SELECT*FROMinfowhere(1=1)";
$q.=$a;
$q.=$b;
//注释4------------------------------------------
MysqL_query("SETNAMESGB2312");
$rs=MysqL_query($q,$link);
echo"echo"while($row=MysqL_fetch_object($rs))echo"departenameecho"
注释1:接收search.PHP通过post传递出的参数,把两个参数分别存储入变量:depart和ename。 注释2:判断参数是否为空,如果为空,不作任何操作。如果有参数传出,则生成相应sql语句。 注释3:用追加的方法生成sql语句。 注释4:生成数据集,显示数据,最后关闭数据库连接。 怎么样,是不是实现了组合查询功能呢?有机会的话,我将更详细的对此做一些介绍。

本文转载自

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...