php+mysql多条件多值查询
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php+mysql多条件多值查询相关的知识,希望对你有一定的参考价值。
从两个checkbox里面分别得到status(一个或多个值),和(一个或多个值) 来查mysql数据库一张表的数据 。
where条件里面,status和from两个字段都要满足条件
比如,结果数据应该只能是属于从checkbox得到的status的一个或几个值,而且from字段也要只是checkbox得到的一个或几个值,不能有其他的不是checkbox得到的status和from的值。
从两个checkbox里面分别得到status(一个或多个值),和from(一个或多个值) 来查mysql数据库一张表的数据 。
其实就是一个查询页面里面有两个checkbox。所以查询条件要满足两个checkbox得到的值。比如,如果选项得到的status是“待定”和“确认”,然后from是“相册”“主页”,所以结果应该是显示状态为“待定”或者“确认”的来自“相册”或“主页”的数据
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">
<title>SQL多条件查询示例</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>
</select><br/>
面积:<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/>";
//等等
?> 参考技术A 首先你肯定会有两个变量去获取status和from的值,假设两个字段分别为status和from,则select * from 表名 where `status` in (status值) and `from` in (from值),checkbox是选中就能得到值的本回答被提问者采纳 参考技术B select status , form from table where status in ('待定', '确认') and form in('相册', '相册');
其中status in ('待定', '确认') and form in('相册', '相册');
括号里面的值就是从checkbox中取到的值。 参考技术C SELECT * FROM `from` WHERE `status` in (1,2)
多条件查询(php+mysql) 租房子例子
<body> <?php //多条件 $tiaojian2= " 2=2 "; $attr2 = ""; //判断区域 if(!empty($_POST["area"])) { $attr2 = $_POST["area"]; $str2 = implode("‘,‘",$attr2); $tiaojian2 = "area in(‘{$str2}‘)"; } //多条件 $tiaojian3= " 2=2 "; $attr3 = ""; //判断房屋类型 if(!empty($_POST["renttype"])) { $attr3 = $_POST["renttype"]; $str3 = implode("‘,‘",$attr3); $tiaojian3 = "renttype in(‘{$str3}‘)"; } //多条件 $tiaojian4= " 2=2 "; $attr4 = ""; //判断租赁类型 if(!empty($_POST["houesetype"])) { $attr4 = $_POST["houesetype"]; $str4 = implode("‘,‘",$attr4); $tiaojian4 = "houesetype in(‘{$str4}‘)"; } ?> <form action="sousuoyemian.php" method="post"> <div>区 域:<input type="checkbox" onclick="quanxuanqu(this)"/>全选 <?php $tj=" and 1=1 "; if(!empty($_POST["gjz"]) && $_POST["gjz"]!== "" ) { $tj=" and kerword like ‘%{$_POST[‘gjz‘]}%‘ "; } include("fengzhuang.php"); $db = new FENG(); $s="select * from house"; $a=$db->query($s); echo"<div>"; foreach($a as $v) { echo"<input type=‘checkbox‘ class=‘quyu‘ value=‘$v[2]‘ name=‘area[]‘/>{$v[2]}"; } echo"</div>"; ?> </div><br /> <div>房屋类型:<input type="checkbox" onclick="quanxuanfang(this)"/>全选 <?php echo"<div>"; foreach($a as $v) { echo"<input type=‘checkbox‘ class=‘fangwu‘ value=‘$v[5]‘ name=‘renttype[]‘/>{$v[5]}"; } echo"</div>"; ?> </div><br /> <div>租赁类型:<input type="checkbox" onclick="quanxuanzu(this)"/>全选 <?php echo"<div>"; foreach($a as $v) { echo"<input type=‘checkbox‘ class=‘zulin‘ value=‘$v[6]‘ name=‘houesetype[]‘/>{$v[6]}"; } echo"</div>"; ?> </div><br /> <!-- 关键字查询 --> <div>关 键 字:<input type="text" name="gjz"/></div> <div><input type="submit" value="搜索" /></div> </form> <table style="width:100%" border="1" cellpadding="0" cellspacing="0"> <tr> <td>关键字</td> <td>区域</td> <td>使用面积</td> <td>租金</td> <td>租赁类型</td> <td>房屋类型</td> </tr> <?php $sql="select * from house where {$tiaojian2} and {$tiaojian3} and {$tiaojian4} ".$tj; $ar=$db->query($sql); foreach($ar as $v) { echo"<tr>"; echo"<td>{$v[1]}</td><td>{$v[2]}</td><td>{$v[3]}</td><td>{$v[4]}</td><td>{$v[5]}</td><td>{$v[6]}</td>"; echo"</tr>"; } ?> </table> <script type="text/javascript"> function quanxuanqu(qu) { //找到下面所有的复选框 var c=document.getElementsByClassName("quyu"); //遍历所有复选框,设置选中状态 for (var i=0; i<c.length; i++) { if(qu.checked) { c[i].setAttribute("checked","checked"); } else { c[i].removeAttribute("checked"); } } } function quanxuanfang(fang) { //找到下面所有的复选框 var c=document.getElementsByClassName("fangwu"); //遍历所有复选框,设置选中状态 for (var i=0; i<c.length; i++) { if(fang.checked) { c[i].setAttribute("checked","checked"); } else { c[i].removeAttribute("checked"); } } } function quanxuanzu(zu) { //找到下面所有的复选框 var c=document.getElementsByClassName("zulin"); //遍历所有复选框,设置选中状态 for (var i=0; i<c.length; i++) { if(zu.checked) { c[i].setAttribute("checked","checked"); } else { c[i].removeAttribute("checked"); } } } </script> </body>
以上是关于php+mysql多条件多值查询的主要内容,如果未能解决你的问题,请参考以下文章