• 案例: 多条件查询


    1、小知识

    此错误代表 sql语句出错

     处理页面可以是新建的或是本页面,如果是本页面:注意刷新后的页面显示。考虑如何实现它,可以加个if语句限制。

    2、条件查询的一般步骤:

    //分条件
    $tj1
    =" 1=1"; $tj2=" 1=1";//查所有的内容


    //条件内容
    if
    (!empty($_POST["zhi"]))//判断有没有进行获取操作,如果没有执行获取操作,那么页面一跳转就显示所有记录,如果有执行下面语句 { $zhi=$_POST["zhi"]; $brand=$_POST["brand"]; if($zhi!="") { //模糊查询-关键字查询 $tj1=" Name like '%{$zhi}%'"; } if($brand!="") { $tj2=" brand='$brand'"; } }
    //总条件  
    $tj=" where".$tj1." and".$tj2;  

     

    案例:

    封装类页面:

    <?php
    header("content-type:text/html;charset=utf-8");
    class DBDA
    {
        public $host="localhost";
        public $uid="root";
        public $pwd="123";
        public $dbconnect;
        
        function query($sql,$type=1,$dbname="test")
        {    
            $this->dbconnect=new MySQLi($this->host,$this->uid,$this->pwd,$dbname);
            if(!mysqli_connect_error())
            {
                $result=$this->dbconnect->query($sql);
                if($type==1)
                {
                    $attr=$result->fetch_all();
                    return $attr;
                }
                else
                {
                    return $result;
                }
            }
            else
            {
                echo "连接失败";
            }
        }
    }

    主页面:

    <body>
    <h1 align="center">查询页面</h1>
    <form action="chaxun.php" method="post">
    汽车名称:<input type="text"  name="zhi"/>
    <br />
    系列号:&nbsp;<input type="text"  name="brand"/>
    <input type="submit"  value="查询"/>
    </form>
    <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#000000">
    <tr>
    <th bgcolor="#FFFFFF">序号</th>
    <th bgcolor="#FFFFFF">名称</th>
    <th bgcolor="#FFFFFF">系列</th>
    <th bgcolor="#FFFFFF">日期</th>
    <th bgcolor="#FFFFFF">油耗</th>
    <th bgcolor="#FFFFFF">码力</th>
    <th bgcolor="#FFFFFF">行程</th>
    <th bgcolor="#FFFFFF">价格</th>
    <th bgcolor="#FFFFFF">pic</th>
    </tr>
    <br />
    <?php
    //处理页面是本页面,页面一跳转过来就显示主页面
    //$zhi=$_POST["zhi"];
    $tj1=" 1=1";
    $tj2=" 1=1";//查所有的内容
    if(!empty($_POST))//判断有没有进行获取操作,如果没有执行获取操作,那么页面一跳转就显示所有记录,如果有执行下面语句
    {    
        $zhi=$_POST["zhi"];
        $brand=$_POST["brand"];
        if($zhi!="")
        {    
            //模糊查询-关键字查询
            $tj1=" Name like '%{$zhi}%'";
        }
        if($brand!="")
        {    
            $tj2=" brand='$brand'";
        }    
    }
    $tj=" where".$tj1." and".$tj2;
    //查询如果不输入条件,默认显示主页面
    include "DBDA.class.php";
    $car=new DBDA();
    $sql="select * from car".$tj;//全局变量对应于全局变量
    var_dump($sql);
    $a=$car->query($sql,1);
    foreach($a as $v)
    {
    echo "<tr>
    <td bgcolor='#FFFFFF' align='center'>{$v[0]}</td>
    <td bgcolor='#FFFFFF' align='center'>{$v[1]}</td>
    <td bgcolor='#FFFFFF' align='center'>{$v[2]}</td>
    <td bgcolor='#FFFFFF' align='center'>{$v[3]}</td>
    <td bgcolor='#FFFFFF' align='center'>{$v[4]}</td>
    <td bgcolor='#FFFFFF' align='center'>{$v[5]}</td>
    <td bgcolor='#FFFFFF' align='center'>{$v[6]}</td>
    <td bgcolor='#FFFFFF' align='center'>{$v[7]}</td>
    <td bgcolor='#FFFFFF' align='center'>{$v[8]}</td>
    </tr>";
    }
    ?>
    </table>
    </body>
  • 相关阅读:
    行为型模式之Template Method模式
    【翻译】无需安装Python,就可以在.NET里调用Python库
    SciSharpCube:容器中的SciSharp,.NET机器学习开箱即用
    [翻译] NumSharp的数组切片功能 [:]
    C#
    API做翻页的两种思路
    C#相等性
    C#相等性
    SpringBoot进阶教程(五十八)整合Redis之Sentinel哨兵模式
    org.springframework.cache.interceptor.SimpleKey cannot be cast to java.lang.String
  • 原文地址:https://www.cnblogs.com/jinshui/p/5591330.html
Copyright © 2020-2023  润新知