PHP连接数据库实现多条件查询与分页功能——关于租房页面的完整实例操作

租房页面如图:

代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>租房子</title>
        <script src="bootstrap/js/jquery-1.11.2.min.js"></script>  //引入bootstrap前端框架的三个文件
        <script src="bootstrap/js/bootstrap.min.js"></script>
        <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css"/>
    </head>
    <style>
        .yangshi{
            margin-left: 69px;
        }
        .ys{
            margin-left: 69px;
        }
        .juli{
            margin-left: 28px;
        }
    </style>
    <body>
        <form action="rental.php" method="get" style="margin-top: -145px;">  //form表单中使用get方式进行提交
    <div style="width: 80%; height: 650px; background-image: url(./img/魅力罗兰Music炫图13.jpg); margin-left: 150px; margin-top: 150px;">
        <div style="margin-left: 20px;">
            <h1 style="margin-left: 40%; pading-top: 20px;">租房子</h1>
            <div class="juli">区域:<input type="checkbox" class="ck1" onclick="qx(this)"> 全选</div>
            <div>

    //连接数据库并利用去重查询取出列名为区域的这一组数据                              
                <?php
                require_once "./DBDA.class.php";    
                require_once "./page.class.php";
                $db = new DBDA();
                $sqy = "select distinct area from housedb";    //去重查询
                $aqy =$db->query($sqy,0);
                foreach($aqy as $v){
                    echo "<span class=‘yangshi‘><input type=‘checkbox‘  class=‘ck1‘ name=‘qy[]‘ value=‘{$v[0]}‘> {$v[0]}</span>";
                }
                ?>
            </div>
        </div>

  效果如图:

<div style="margin-left: 20px; margin-top: 20px;">
            <div>租房类型:<input type="checkbox" class="ck2" onclick="zflx(this)"> 全选</div>
            <div>

    //连接数据库并利用去重查询取出列名为租房类型的这一组数据      
                <?php
                $srt = "select distinct renttype from housedb";    
                $art = $db->query($srt,0);
                foreach($art as $v){
                    echo "<span class=‘ys‘><input type=‘checkbox‘ class=‘ck2‘ name=‘zflx[]‘ value=‘{$v[0]}‘> {$v[0]}</span>";
                }
                ?>
            </div>

  效果如图:

<div style="margin-top: 20px;">
            <div class="juli">户型:<input type="checkbox" class="ck3" onclick="hx(this)"> 全选</div>
            <div>

    //连接数据库并利用去重查询取出列名为户型的这一组数据    
                <?php
                $sht = "select distinct housetype from housedb";    
                $aht = $db->query($sht,0);
                foreach($aht as $v){
                    echo "<span class=‘yangshi‘><input type=‘checkbox‘ class=‘ck3‘ name=‘hx[]‘ value=‘{$v[0]}‘ > {$v[0]}</span>";
                }
                ?>
            </div>
            </div>

  效果如图:
        </div>
        
            <div style="margin-top: 20px; margin-left: 20px;">
                <span class="glyphicon glyphicon-search" style="margin-top: 10px; float: left;"></span>

    //关键字查询
                <input type="text" class="form-control" name="keyword" placeholder="关键字搜索" style="max-width: 120px;float: left;">
                <button type="submit" class="btn btn-danger"style="float: left; margin-left: 20px;">搜索</button>

  效果如图:
            </div>
    //使用表格在页面输出全部数据信息
        <table class="table table-bordered">
            <thead>
                <tr>
                    <th>关键字</th>
                    <th>区域</th>
                    <th>房子面积</th>
                    <th>租价</th>
                    <th>租房类型</th>
                    <th>户型</th>
                </tr>
            </thead>
            <tbody>
                <?php                                                                    
                $tj1 = " 1=1 ";  //分别对不同查询的条件做一个恒成立的条件
                $tj2 = " 1=1 ";
                $tj3 = " 1=1 ";
                $tj4 = " 1=1 ";
                if(!empty($_GET["qy"])){  //区域的条件判断
                    $qy = $_GET["qy"];
                    $str = implode("‘,‘", $qy);
                    $tj1 = "area in (‘{$str}‘)";
                }
                if(!empty($_GET["zflx"])){  //租房类型的条件判断
                    $zflx = $_GET["zflx"];
                    $str = implode("‘,‘", $zflx);
                    $tj2 = "renttype in (‘{$str}‘)";
                }
                if(!empty($_GET["hx"])){  //户型的条件判断
                    $hx = $_GET["hx"];
                    $str = implode("‘,‘", $hx);
                    $tj3 = "housetype in (‘{$str}‘)";
                }
                if(!empty($_GET["keyword"])){  //关键字查询的条件判断
                    $keyword = $_GET["keyword"];
                    $tj4 = "keyword like ‘%{$keyword}%‘";
                }    
                
                $zts = "select count(*) from housedb where {$tj1} and {$tj2} and {$tj3} and {$tj4}";  
                $ats = $db->query($zts,0);
                $page = new page($ats[0][0],3);  //分页查询取总数,设置每页显示的行数据

  效果如图:

$sql = "select * from housedb where {$tj1} and {$tj2} and {$tj3} and {$tj4}".$page->limit;  //利用拼接字符串方式将调取分页方法与条件进行拼接
                $arr = $db->query($sql,0);
                foreach($arr as $v){
                    echo "<tr>
                    <td>{$v[1]}</td>
                    <td>{$v[2]}</td>
                    <td>{$v[3]}</td>
                    <td>{$v[4]}</td>
                    <td>{$v[5]}</td>
                    <td>{$v[6]}</td>
                </tr>";
                }
                ?>                
            </tbody>
        </table>

  效果如图:
        <div>
            <?php
            echo $page->fpage();
            ?>
        </div>
    </div>
    </form>                
    </body>
    <script>

  //使用JS实现全选功能
        function qx(qx){
            var ck1 = document.getElementsByClassName("ck1");
            for(var i=0;i<ck1.length;i++){
                ck1[i].checked=qx.checked;
            }
        }
        function zflx(zflx){
            var ck2 = document.getElementsByClassName("ck2");
            for(var i=0;i<ck2.length;i++){
                ck2[i].checked=zflx.checked;
            }
        }
        function hx(hx){
            var ck3 = document.getElementsByClassName("ck3");
            for(var i=0;i<ck3.length;i++){
                ck3[i].checked=hx.checked;
            }
        }
    </script>
</html>

时间: 2024-10-23 08:56:47

PHP连接数据库实现多条件查询与分页功能——关于租房页面的完整实例操作的相关文章

(四)Oracle条件查询,分页查询

1. SQL(基础查询) 1.1基础查询 1.1.1. 使用LIKE条件(模糊查询) 当用户在执行查询时,不能完全确定某些信息的查询条件,或者只知道信息的一部分,可以借助LIKE来实现模糊查询.LIKE需要借助两个通配符: %:表示0到多个字符 _:标识单个字符 这两个通配符可以配合使用,构造灵活的匹配条件.例如查询职员姓名中第二个字符是'A'的员工信息: SELECT ename, job FROM emp WHERE ename LIKE '_A%'; 1.1.2. 使用IN和NOT IN

8.修改 按条件查询商品 分页

修改商品的原理图 jsp页面 edit.jsp <%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <HTML> <HEAD> <meta http-equiv="Content-Langua

(转)Entity Framework4.1实现动态多条件查询、分页和排序

原文:http://www.cnblogs.com/ahui/archive/2011/08/04/2127282.html EF通用的分页实现: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 /// <summary> /// 根据条件分页获得记录 /// </summary> /// <param name="where">条件</param> /// <

分页 --条件查询再分页

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

linq 条件查询与分页

<div>姓名:<asp:TextBox ID="T1" runat="server"></asp:TextBox></div> <div> 性别:<asp:DropDownList ID="DropDownList1" runat="server"> <asp:ListItem Text="男和女" Value="Nu

Web 条件查询、分页查

在table表格上 创建几个按钮 1 <%@ page language="java" pageEncoding="UTF-8"%> 2 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 3 <HTML> 4 <HEAD> 5 <meta http-equiv="Content-Langu

SpringBoot实战项目(四)--用户模糊查询以及分页功能实现

根据<from> userName(用户名)搜索... 1 <!DOCTYPE html> 2 <html class="x-admin-sm" xmlns:th="http://www.thymeleaf.org"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>欢迎页面-X-admin2.2</title> 6 <

thinkphp分页+条件查询

最近项目上面有一个带条件查询的分页列表,一开始form用的post,点击第二页就没有跳转成功,原因是分页是get请求,post数据链接到其他页面就会被清除. 解决办法: 1.form表单method=get 2.后台代码用I('get.parameterName')获取URL参数(查询条件) 3.修改thinkphp3.2.3的Page类: 第47行 改为$this->parameter  = empty($parameter) ? array_urlencode($_GET) : $param

基于Struts2、Spring、Hibernate实现的包含多条件查询分页的基础Dao层帮助jar包实现

操作数据库常用操作就是增删查改,每做一次就写一次这些操作太麻烦,也没必要,特别是写多条件查询并分页时,太痛苦了,所以抽空写了个dao帮助jar,导入即搞定!妈妈再有不用担心我的项目了! 转载请注明出处!!! 使用说明: 1.类的使用请参照文档说明,不懂可以结合例子demo! 2.分页jsp书写,只需将分页条件包在<form action="地址" id="pageForm">中即可,然后把jar中的pageJsp中的pageView.jsp拷出来,在数据