• php查询,多条件查询


    单条件查询:

    1.先要有一张表,显示出表中的数据:

    <!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-Type" content="text/html; charset=utf-8" />
        <title>无标题文档</title>
    </head>
    
    <body>
    <table border="1" cellspacing="0" cellpadding="0">
        <tr>
            <td width="200">编号</td>
            <td width="200">姓名</td>
            <td width="200">电话</td>
            <td width="200" >分组</td>
    
        </tr>
        <?php
        $db = new mysqli("localhost","root","12345678","heiheihei");
        $sql = "select * from contacts";
        $r = $db->query($sql);
        //传值
        while ($attr = $r->fetch_row())
        {
            echo " <tr>
            <td>{$attr[0]}</td> 
    
            <td>{$attr[1]}</td>
            <td>{$attr[2]}</td>
            <td>{$attr[3]}</td>
            
        </tr>";
        }
        ?>
    </table>
    
    
    </body>
    </html>

    上图:

    啥都没改的一张表

    2.再来个from表单,让用户输入,点击查询:

    <form action="shouye.php" method="post">
        <div>
            输入名字:<input type="text" name="name"/>
            <input type="submit" value="查询"/>
    
        </div>
    
    </form>

    如图:

    3.建立关键字查询:

     <?php
        //实现两个逻辑
        //1.如果没有post数据.查所有的
        //2.如果有post数据.根据条件查
        $db = new mysqli("localhost","root","12345678","heiheihei");
        //连接数据库
        $tj = " 1 = 1 ";
        $name="";
        //恒成立,如果没有写数据,那就让条件等于1=1,这个条件是查找所有的数据
        //如果你写入数据,按照数据查
        if(!empty($_POST))
        {
            $name = $_POST['name'];
            $tj = " name like '%{$name}%'";
        }
        //将条件拼接到SQl语句
        $sql = "select * from contacts WHERE  {$tj}";
        echo $sql;
    
        //查出来
        $r = $db->query($sql);
        //传值
        if($r)
            //开始判断
        {
            //$attr已经接收到了值,现在只需要获取他的索引就行了
            while ($attr = $r->fetch_row())
            {
                //关键字特殊查询
    
              $str = str_replace($name,"<mark>{$name}</mark>",$attr[1]);    //查找替换如ctrl+f
                //substr_replace();          在指定位置替换
                //substr();        截取字符串
    
                $gname = "select gname from groups WHERE gid='{$attr[3]}'";
                //分组表中的gid,和我点击的
                $nresult = $db->query($gname);
                $gname = $nresult->fetch_row();
                $nation = $gname[0];
     echo " <tr>
    <td>{$attr[0]}</td> 
    
    <td>{$str}</td>
    <td>{$attr[2]}</td>
    <td>{$nation}</td>
    
    
    ?>

    图:

     多条件查询:

    前面照旧;

    出了php的语句:

     <?php
        //实现两个逻辑
        //1.如果没有post数据.查所有的
        //2.如果有post数据.根据条件查
        $db = new mysqli("localhost","root","12345678","heiheihei");
        //连接数据库
        $tj1 = " 1 = 1 ";
        $tj2 = " 1 = 1 ";//两个条件的恒等
        $name="";
        //恒成立,如果没有写数据,那就让条件等于1=1,这个条件是查找所有的数据
        //如果你写入数据,按照数据查
        if(!empty($_POST["name"])) //第一个条件的判断(用到了模糊查询)
        {
            $name = $_POST['name'];
            $tj1 = " name like '%{$name}%'";
        }
        if(!empty($_POST["tel"]))
        {
            $tel = $_POST["tel"];
            $tj2 = "tel = '$tel'";
        }
        //将条件拼接到SQl语句
        $sql = "select * from contacts WHERE  {$tj1} AND {$tj2}";

    效果图:

     这样:有几个条件就做几个条件变量,第一个条件不为空就执行的第一个条件,第二个条件不为空执行的第二个条件,两个都为空就是查寻所有的数据

  • 相关阅读:
    2011年需要关注的9大编程语言 狼人:
    微软在华推广Win7拒绝“黑屏” 狼人:
    ifanr访谈:GuruDigger — Web工程师排排坐 狼人:
    10种破除网页设计师障碍的实用方法 狼人:
    英特尔CEO:微软Windows 7是PC更新的催化剂 狼人:
    Windows 7市场份额突破25% XP持续下滑 狼人:
    Office Web Apps中文版正式上线 狼人:
    机器学习实现线性梯度算实现octave
    管理系统数据库sql server 数据库管理
    缓存代码sencha Touch 缓存问题解析
  • 原文地址:https://www.cnblogs.com/xuan584521/p/6436214.html
Copyright © 2020-2023  润新知