php数据多条件查询 php根据条件查询数据

PHP中关于查询多个条件的代码

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

龙江网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、自适应网站建设等网站项目制作,到程序开发,运营维护。成都创新互联公司从2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司

那就让我们开始。

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

html

body

h3查询/h3

form action="search_result.php" method="POST"

部门名称:input type="text" size=25 name="depart" value="" brbr

员工姓名: input type="text" size=25 name="ename" value="" brbr

input type="submit" name="提交" value="提交"

/form

/body

/html

和上次一样,我们将depart与ename的值通过Post的方法传递给search_result.php文件。

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

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

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

?php

$link =mysql_connect("localhost","root","管理员密码");

mysql_select_db("infosystem", $link);

?

?php

//注释1-----------------------------

$depart=$_POST["depart"];

$ename=$_POST["ename"];

//注释2------------------------

if($depart != null){

$a = " and depart like '%$depart%'";}

if($ename != null){

$b = " and ename like '%$ename%'";}

//注释3--------

$q = "SELECT * FROM info where (1=1)";

$q .=$a;

$q .=$b;

//注释4----------------

mysql_query("SET NAMES GB2312");

$rs = mysql_query($q, $link);

echo "table";

echo "trtd部门/tdtd员工姓名/td/tr";

while($row = mysql_fetch_object($rs)) echo "trtd$row-depart/tdtd$row-ename/td/tr";

echo "/table";

mysql_close($link);

?

注释1:接收search.php通过post传递出的参数,把两个参数分别存储入变量:depart和ename。

注释2:判断参数是否为空,如果为空,不作任何操作。如果有参数传出,则生成相应SQL语句。

注释3:用追加的方法生成SQL语句。

注释4:生成数据集,显示数据,最后关闭数据库连接。

PHP新手,有关php多条件查询的问题,求大神指点,分不够可以加

你在第一行,加一行

header('Content-Type: text/html; charset=utf-8');

如果加了以后还是乱码,那你在notpad++里的菜单栏上,点“格式”,点“以UTF-8,无BOM格式编码”,乱码问题就解决了。

php多条件查询问题,怎么过滤空值?

是的正如你所说有两种解决方案,第一种是采用PHP的方式,先判断数据的合法性,比如是否提交了空值(推荐使用,没有垃圾数据);第二种不做任何判断,空值也能提交到数据库,只是在SQL查询时过滤空值数据(不推荐使用,有垃圾数据)。

解决方案1(通过PHP过滤空值数据):

if ($_POST['字段'] == '') exit('script type="text/javascript"alert("数据不合法!");history.back();/script'); // 依此类推,逐一判断表单$_POST数据

解决方案2(通过SQL查询来过滤空值数据):

SELECT `字段名` FROM `表名` WHERE `字段1` NOT IN ('', NULL) AND `字段2` NOT IN ('', NULL) ...;

以上就是两种解决方案,我推荐两种方案组合使用,这样确保万无一失,如有问题欢迎追问~

php 多条件查询数据库MySQL

SELECT * FROM `表名` WHERE bookid=22

获取BOOKID为22的记录,输出$uid=

if(strpos($uid,"2")!==false):echo"包含";else:echo"不包含";endif;

判断UID中是否含有2

MYSQLI方法统计数量

$num=mysqli_num_rows(mysqli_query($mysqli,"SELECT id FROM `表名` where pinglun=1"));

统计该表中pinglun=1的记录数量

php+mysql多条件多值查询

PHP+Mysql多条件多值查询示例代码:

index.html代码:

!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "

html

head

meta http-equiv="Content-Type" content="text/html; charset=UTF-8"

titleSQL多条件查询示例/title

/head

body

form method="post" action="deal.php"

h1房屋出租/h1

房屋类型:select name="type"

option value="1"一居室/option

option value="2"二居室/option

option value="3"三居室/option

/selectbr/

面积:input name="area" type="text"/br/

地址:input name="addr" type="text"/br/

input name="btn" type="submit" value="搜索" /br/

/form

/body

/html

deal.php文件:

?php

//连接数据库

$conn=mysql_connect("localhost","root","");

//选择数据库

$db=mysql_select_db("数据库名");

//接收 参数

$type=$_POST['type'];

$area=$_POST['area'];

$addr=$_POST['addr'];

//SQL语句主题

$query="select * from room  where "; 

//根据条件和传的值拼接sql语句

//判断面积不为空

if($type!=""){

//然后根据具体面积分情况拼接

switch($type){

case 1:

//一居室

$query.=" room_type=1"; 

break;

case 2:

$query.=" room_type=2";

break;

case 3:

$query.=" room_type=3";

break;

}

}

//面积

if($area!=""){

$query.=" and area ={$area}";

}

//地址

if($addr!=""){

$query.=" and addr like '%{$addr}%'"; //地址

}

//执行查询

$result=mysql_query($query);

//遍历结果

echo "搜搜结果如下:";

while($row=mysql_fetch_array($result)){

echo "地址:".$row['addr'];

echo "br/";

echo "面积:".$row['area'];

echo "br/";

echo "居室:".$row['type'];

echo "br/";

echo "价格:".$row['addr'];

echo "br/";

//等等

}

?


网站题目:php数据多条件查询 php根据条件查询数据
本文URL:http://csdahua.cn/article/hjphii.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流