php租房子批量搜索例题

Posted 梦深深处

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php租房子批量搜索例题相关的知识,希望对你有一定的参考价值。

租房子例题是用来练习多条件查询以及批量选择的典型例题,题面是这样的:

首先要分别建立区域、租赁类型、房屋类型的复选界面,遍历出所有数据,这里用无边框表格创建:

<table width="100%" cellpadding="0" cellspacing="0">
    <tr>
        <td>区域:<input type="checkbox" name="qx" onclick="quanxuan(this,\'ck\')" />全选</td><!--设置复选框和点击事件,为批量选择做准备-->
    </tr>
 </table>

 <?php
    
    $sql1 = "select distinct area from house";//去重查询
    $arr1 = $db->query($sql1);
    
    foreach($arr1 as $v)
    {
        echo "<tr>
        <td><input type=\'checkbox\' name=\'ck[]\' class=\'ck\' value=\'{$v[0]}\' />{$v[0]}</td>
    </tr>";//遍历出复选框内容,ck[]是一个数组
    }
    ?><br />
<br />


<table width="100%" cellpadding="0" cellspacing="0">
    <tr>
        <td>租赁类型:<input type="checkbox" name="qx1" onclick="quanxuan(this,\'ck1\')" />全选</td>
    </tr>
 </table>

 <?php
    
    $sql2 = "select distinct renttype from house";
    $arr2 = $db->query($sql2);
    
    foreach($arr2 as $v)
    {
        echo "<tr>
        <td><input type=\'checkbox\' name=\'ck1[]\' class=\'ck1\' value=\'{$v[0]}\' />{$v[0]}</td>
    </tr>";
    }
    ?><br />
<br />

    
<table width="100%" cellpadding="0" cellspacing="0">
    <tr>
        <td>房屋类型:<input type="checkbox" name="qx2" onclick="quanxuan(this,\'ck2\')" />全选</td>
    </tr>
 </table>

 <?php
    
    $sql3 = "select distinct housetype from house";
    $arr3 = $db->query($sql3);
    
    foreach($arr3 as $v)
    {
        echo "<tr>
        <td><input type=\'checkbox\' name=\'ck2[]\' class=\'ck2\' value=\'{$v[0]}\' />{$v[0]}</td>
    </tr>";
    }
    ?><br />

然后再用表单做搜索框,并用表格输出表中数据:

<div>关键字:<input type="text" name="keyword" value="<?php echo $keyword ?>" />
<input type="submit" value="搜索" />
</div>   <br />    

<table  width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td>关键字</td>
        <td>区域</td>
        <td>面积</td>
        <td>租金</td>
        <td>租赁类型</td>
        <td>房屋类型</td>
    </tr>

<?php
$arr=$db->query($sql);
foreach($arr as $v)
{
    $str=str_replace($keyword,"<span style=\'color:red\'>{$keyword}</span>",$v[1]);//查找替换关键词变为红色    
    echo"<tr>
        <td>{$str}</td>
        <td>{$v[2]}</td>
        <td>{$v[3]}</td>
        <td>{$v[4]}</td>
        <td>{$v[5]}</td>
        <td>{$v[6]}</td>
    </tr>";
}

?>
</table>

然后用JS设置全选模式,上边在onclick里边设置了两个参数,是为了用一个函数来将区域、租赁类型、房屋类型的全选都做出来:

function quanxuan(qx,a)
{
    //找到该全选按钮对应的checkbox列表
    var c=document.getElementsByClassName(a);
    //找全选按钮选中状态
    if(qx.checked)
    {
        for(var i=0; i<c.length;i++)
        {
            c[i].setAttribute("checked","checked");//添加已选
        }
    }
    else{
        for(var i=0;i<c.length;i++)
        {
            c[i].removeAttribute("checked");//去除已选
        }
    }
}


</script>

最后就是多条件查询:

<?php
require "DBDA.class.php";
$db=new DBDA();
$keyword="";
$tj1=" 1=1 ";//多条件查询,一定空格
$tj2=" 1=1 ";
$tj3=" 1=1 ";
$tj4=" 1=1 ";
if(!empty($_POST["keyword"]))//判断是否为空
{
    $keyword=$_POST["keyword"];//提取数据
    $tj1=" keyword like \'%{$keyword}%\' ";//设置条件
}
if(!empty($_POST["ck"]))
{
    $arr4=$_POST["ck"];
    $str=implode("\',\'",$arr4);//数组组成字符串
    $tj2=" area in (\'{$str}\') ";
}
if(!empty($_POST["ck1"]))
{
    $arr5=$_POST["ck1"];
    $str=implode("\',\'",$arr5);
    $tj3=" renttype in (\'{$str}\') ";
}
if(!empty($_POST["ck2"]))
{
    $arr6=$_POST["ck2"];
    $str=implode("\',\'",$arr6);
    $tj4=" housetype in (\'{$str}\') ";
}
$tj=" {$tj1}and{$tj2}and{$tj3}and{$tj4} ";
$sql="select * from house where".$tj;
?>  

切记:所有代码都要在一个form表单中:

<form action="house.php" method="post">
</form><!--要将所有代码嵌套在form表单中-->

 

以上是关于php租房子批量搜索例题的主要内容,如果未能解决你的问题,请参考以下文章

复选框式查询 例题租房子

201810/18租房子(管理员) 增加 删除 修改 发布

租房子(用户登录) 最主要的 查!!!!!!(只显示查的页面代码)

php练习 租房子

PHP-----练习-------租房子-----增删改查,多条件查询

php 租房子练习