数据访问之查询数据 ---2017--05-02

查询逻辑:

1.如果没有提交数据,显示所有
2.如果有提交数据,根据关键字查询显示

 

一、只有一个查询条件时:

实现效果:当输入关键词,点击查询可以查询带有关键词的所有字段

效果图如下:

代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <!--此段php代码放在前面是因为,想让输入的关键词在点击查询后仍然显示,将$name用value输出。-->
        <?php
                $sql = "select * from car";
                $name = "";        //给默认值为空,不在外面定义一个,后面没法调用。必须定义
                
                if(!empty($_POST))
                {
                    $name=$_POST["name"];
                    
                    $sql = "select * from car where name like '%{$name}%'";    
                }
            ?>
        <br /><br />
        <form action="chaxun.php" method="post">
            汽车名称:<input type="text" name="name" value="<?php echo $name ?>"/>
            <input type="submit"value="查询" />
        </form>

        <br /><br />
        <table cellpadding="0px" cellspacing="0px" border="1px" width="80%">
            <tr>
                <td>code</td>
                <td>name</td>
                <td>brand</td>
                <td>time</td>
                <td>exhaust</td>
                <td>price</td>
            </tr>    
            <?php
            require "DB.class.php";
            $db = new DB();
            $arr=$db->query($sql);
            //var_dump($arr);
            foreach($arr as $v){
                             //用替换,给关键字加样式
                $str = str_replace($name,"<span style='color:red'>{$name}</span>",$v[1]);
                echo"<tr>
                <td>{$v[0]}</td>
                <td>{$str}</td>
                <td>{$v[2]}</td>
                <td>{$v[3]}</td>
                <td>{$v[6]}</td>
                <td>{$v[7]}</td>
            </tr>";        
            }    
            ?>    
        </table>
    </body>
</html>

 

二、多个查询条件时:

实现效果:1个条件有两种情况,2个条件有4种情况,3个条件有9种情况......要有if实现判断条件

效果图:

代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
            require "DB.class.php";
            $db = new DB();    
            //在外面设置默认值,便于if外调用
            $name = ""; 
            $brand = "";
            //假设两个条件,且为横成立; 前后都有空格
            $tj1 =" 1=1 ";
            $tj2 =" 1=1 ";
        if(!empty($_POST["name"]))
        {   
            $name = $_POST["name"];
            //有空格
            $tj1=" name like '%{$name}%'";
        }
        if(!empty($_POST["brand"]))
        {   
            $brand = $_POST["brand"];
            //有空格
            $tj2=" brand = '{$brand}'";
        }    
            //条件汇总
        $tj = "{$tj1} and {$tj2}";
        //拼接实现查询
        $sql= "select * from car where".$tj;    
            echo $sql;        
            ?>
    
        <br /><br />
        <div>
        <form action="chaxun1.php" method="post">
            汽车名称:<input type="text" name="name" value="<?php echo $name; ?>"/>
            汽车品牌:<input type="text" name="brand" value ="<?php echo $brand ?>" />
            
            <input type="submit"value="查询" />
        </form>
        
        </div>
        
        
        <br />
        <table cellpadding="0px" cellspacing="0px" border="1px" width="80%">
            <tr>
                <td>code</td>
                <td>name</td>
                <td>brand</td>
                <td>time</td>
                <td>exhaust</td>
                <td>price</td>
            </tr>    
            <?php
            
            $arr=$db->query($sql);
            //var_dump($arr);
            foreach($arr as $v){
                //实现关键字的颜色变化
                $str = str_replace($name,"<span style='color:red'>{$name}</span>",$v[1]);
                $str1 = str_replace($brand,"<span style='color:red'>{$brand}</span>",$v[2]);
                echo"<tr>
                <td>{$v[0]}</td>
                <td>{$str}</td>
                <td>{$str1}</td>
                <td>{$v[3]}</td>
                <td>{$v[6]}</td>
                <td>{$v[7]}</td>
            </tr>";        
            }    
            ?>    
        </table>
    </body>
</html>

 难点:设立恒等的条件,以及条件的拼接,空格等

 

posted @ 2017-05-03 08:14  陈观爱  阅读(345)  评论(0编辑  收藏  举报