zoukankan      html  css  js  c++  java
  • php数据库条件查询

    一、单条件查询,就是只有一个条件的查询:

    1.首先调取之前封装好的类,然后利用关键词模糊查询:

    <?php //单查询
    require "DBDA.class.php";//调取封装类
    $db=new DBDA;
    $Sname="";//创建变量,为了后面可以让Sname在表单中显示
    $sql="select * from t_student";
    
    if(!empty($_POST["Sname"]))//确定是否存在数据
    {
        $Sname=$_POST["Sname"];
        $sql="select * from t_student where Sname like '%{$Sname}%' ";//模糊查询
    }
    ?>

    2、创建表单,将数据提交到当前页面,提取关键字查询:

    <form action="chaxun.php" method="post"><!--因为查询数据在当前页面,所以提交到当前页面-->
    <div>姓名:<input type="text" name="Sname" value="<?php echo $Sname ?>" />
    <input type="submit" value="查询" /></div>
    </form><br />
    
    <table width="100% " border="1" cellpadding="0" cellspacing="0">
        <tr>
            <td>姓名</td>
            <td>性别</td>
            <td>班级</td>
        </tr>

    3、遍历表中元素,将关键字变为红色:

    <?php
    $arr=$db->query($sql);
    foreach($arr as $v)
    {
        $str = str_replace($Sname,"<span style='color:red'>{$Sname}</span>",$v[1]);//用span标签使关键字变为红色,
        echo "<tr>
            <td>{$str}</td>
            <td>{$v[2]}</td>
            <td>{$v[4]}</td>
            </tr>";    
    }
    ?>

    最终结果:

    二、多条件查询:

    1、先做一个表单,并创建表格将表显示出来:

    <table width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td>代号</td>
        <td>名称</td>
        <td>系列</td>
        <td>上市时间</td>
        <td>价格</td>
    </tr>
    </table>

    2、调取封装类,并创造相应条件,并检验数据是否为空:

    <?php
    require "DBDA.class.php";
    $db=new DBDA();
    //1.如果没有提交数据,显示所有
    //2.如果有提交数据,根据关键字查询显示
    $name="";
    $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;?>

    3、用php代码遍历数据库的表,将关键字变为红色(php要嵌在table里):

    <?php
    $arr = $db->query($sql);
    
    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[7]}</td>
    </tr>";
    }
    
    ?>

    最终结果为:

  • 相关阅读:
    【基础】Oracle 表空间和数据文件
    oracle学习笔记1:windows下oracle数据库安装及.net调用oracle数据库
    redis中文网站
    .NET中的消息队列
    .Net下的进程间的通讯 -- Windows消息队列
    1060 最复杂的数(反素数玄学dfs)
    1282 时钟(最小表示法+hash)
    1191 消灭兔子(贪心+优先队列)
    1366 贫富差距(floyed)
    1503 猪和回文(DP)
  • 原文地址:https://www.cnblogs.com/mengshenshenchu/p/6798031.html
Copyright © 2011-2022 走看看