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

2018-09-08 01:03

阅读:483

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

那就让我们开始。

首先建立查询页面search.php,不同于上次单一条件查询,这次我们需要两个条件的组合进行查询。

<html>
<body>
<h3>查询</h3>
<formaction=search_result.phpmethod=POST>
部门名称:<inputtype=textsize=25name=departvalue=><br><br>
员工姓名:<inputtype=textsize=25name=enamevalue=><br><br>
<inputtype=submitname=提交value=提交>
</form>
</body>
</html>
和上次一样,我们将depart与ename的值通过Post的方法传递给search_result.php文件。

然后便到了这次主题的关键,search_result.php文件如何接受这两个参数值,并判断当其中一个字段为空值时,如何将其排除查询条件。

怎么理解上面这句话,举例子来说,如果我们单纯地将接收参数的查询语句写成select*frominfowheredepart=部门值参数andename=员工姓名参数的话,那么如果其中一个参数为空时我们就将得到select*frominfowheredepart=技术部andename=,显然,这样的查询很有可能返回空的结果,因为这句查询语句的意思就是,查询所有技术部没有姓名的人的数据,这不是很荒唐么,倒过来如果是select*frominfowheredepart=andename=sunec,那么它的意思就是查询员工姓名为sunec但是不属于任何部门的人,那自然也是查询不到结果的。

正确的做法应该是,在查询语句中过滤掉那个为空值的的参数。比如,当我们只输入部门名时应该得到select*frominfowheredepart=技术部。这样,查询语句的意思就变成查询所有部门为技术部员工的信息了,这就是我们想要的。

明确了思路,那么,下一次我们就去实现它!
12下一页阅读全文


评论


亲,登录后才可以留言!