zoukankan      html  css  js  c++  java
  • 数据访问之查询数据 ---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>

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

  • 相关阅读:
    Microsoft Internet Explorer 多个不明细节远程代码执行漏洞
    给妈妈写程序
    平安夜,100篇
    我的DV,Sony HC90E
    听相声
    嘉陵江的石头,也许吧
    一步一个脚印-产品升级随笔(3)-学会拍板
    一步一个脚印-产品升级随笔(1)-vision
    《网站重构》网络资源总结
    一步一个脚印-产品升级随笔(2)-为什么需要BS架构的产品
  • 原文地址:https://www.cnblogs.com/chenguanai/p/6795766.html
Copyright © 2011-2022 走看看