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/>";
    //等等
}

?>
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-13
首先你肯定会有两个变量去获取status和from的值,假设两个字段分别为status和from,则select * from 表名 where `status` in (status值) and `from` in (from值),checkbox是选中就能得到值的本回答被提问者采纳
第2个回答  2012-06-14
select status , form from table where status in ('待定', '确认') and form in('相册', '相册');
其中status in ('待定', '确认') and form in('相册', '相册');
括号里面的值就是从checkbox中取到的值。
第3个回答  2012-06-14
SELECT * FROM `from` WHERE `status` in (1,2)
相似回答