多条件查询练习

如何做查询,首先引入一张汽车表,输出所有数据查出来显示,然后再做查询

<body>
<h1>查询页面</h1>
<table width="100%" border="1" cellpadding="0" cellspacing="0">//先建一个table表
    <tr>  //先做表头
        <td>代号</td>
        <td>名称</td>
        <td>系列</td>
        <td>时间</td>
        <td>油耗</td>
        <td>功率</td>
    </tr>
//显示数据,要从数据库读,所以嵌入PHP代码 <?php
//造一个连接对象
$db = new MySQLi("localhost","root","15864477048","test");

//写SQL语句
$sql = "select * from car";
//调用 执行
$result = $db->query($sql);
//读数据
$attr = $result->fetch_all(); //显示 foreach($attr as $v) { echo"<tr> <td>{$v[0]}</td> <td>{$v[1]}</td> <td>{$v[2]}</td> <td>{$v[3]}</td> <td>{$v[4]}</td> <td>{$v[5]}</td> </tr>"; } ?> </table>

接下来是根据一个关键字查询

<h1>查询页面</h1>
<from action="carchaxun.php" method="post">   //加以表单因为要打到一个页面处理
<div>请输入名称:
<input type="text" name="name" />
<input type="submit" value="查询" />
</div>
</from> <br /> //加一个换行

 

模糊查询

<?php
$db = new MySQLi("localhost","root","15864477048","test");

$name = "";
if(!empty($_POST["name"]))
{
     $name = $_POST["name"];
}

$tj = " name like '%{$name}%' ";//模糊查询
?>

<form action="carchaxun.php" method="post">
<div>请输入名称:
<input type="text" name="name" />
<input type="submit" value="查询" />
</div>
</form>
<br />
<table width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td>代号</td>
        <td>名称</td>
        <td>系列</td>
        <td>时间</td>
        <td>油耗</td>
        <td>功率</td>
    </tr>
    <?php
    
    
    $sql = "select * from car where{$tj}";
    
    
    $result = $db->query($sql);
    $attr = $result->fetch_all();
    
    foreach($attr as $v)
    {
        echo"<tr>
        <td>{$v[0]}</td>
        <td>{$v[1]}</td>
        <td>{$v[2]}</td>
        <td>{$v[3]}</td>
        <td>{$v[4]}</td>
        <td>{$v[5]}</td>
    </tr>";
    }
    ?>
</table>

输入奥迪点击查询,根据奥迪来查  以上是单条件查询,适用范围窄

默认查所有数据恒成立,输入值后根据条件查

 

<?php
$db = new MySQLi("localhost","root","15864477048","test");

$tj ="1=1";//条件默认等于恒成立的
if(!empty($_POST["name"]))
{
     $name = $_POST["name"];
     $tj =" name like'%{$name}%'";
}


?>

 

关键字做特殊显示

<?php
$db = new MySQLi("localhost","root","15864477048","test");

$tj =" 1=1 ";//条件默认等于恒成立的

$name = "";    //定义外层,在外界可以访问到

if(!empty($_POST["name"]))
{
     $name = $_POST["name"];
     $tj =" name like'%{$name}%'";
}


?>

<form action="carchaxun.php" method="post">
<div>请输入名称:
<input type="text" name="name" />
<input type="submit" value="查询" />
</div>
</form>
<br />
<table width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td>代号</td>
        <td>名称</td>
        <td>系列</td>
        <td>时间</td>
        <td>油耗</td>
        <td>功率</td>
    </tr>
    <?php
    
    $sql = "select * from car where{$tj}";
    
    $result = $db->query($sql);
    $attr = $result->fetch_all();
    
    foreach($attr as $v)
    {  
        //替换字符串  括号里(我要查找的关键字 , 替换成什么 , 字符串 )
        $str = str_replace($name,"<span style='color:red'>{$name}</span>",$v[1]);
        //也可以用 mark 可以直接做特殊处理 给文字做了标记
        echo"<tr>
        <td>{$v[0]}</td>
        <td>{$str}</td>
        <td>{$v[2]}</td>
        <td>{$v[3]}</td>
        <td>{$v[4]}</td>
        <td>{$v[5]}</td>
    </tr>";
    }
    ?>

<span></span>也可以替换用 mark 可以直接做特殊处理 给文字做了标记

多条件查询方法用两个条件查询做例子 用两个if判断实现4种逻辑
<form action="carchaxun.php" method="post">
<div>请输入名称:
<input type="text" name="name" />

请输入系列代号:
<input type="text" name="brand" />
<input type="submit" value="查询" />
</div>
</form>

 


<body>
<h1>查询页面</h1>
<?php
$db = new MySQLi("localhost","root","15864477048","test");

$tj1 = " 1=1 ";
$tj2 = " 1=1 ";
$name = "";

if(!empty($_POST["name"]))
{
    $name= $_POST["name"];
    $tj1 = " name like '%{$name}%' ";    
}

if(!empty($_POST["brand"]))
{
     $brand =$_POST["brand"];
     $tj2 ="brand ='{$brand}'";
}

?>

<form action="carchaxun.php" method="post">
<div>请输入名称:
<input type="text" name="name" />

请输入系列代号:
<input type="text" name="brand" />
<input type="submit" value="查询" />
</div>
</form>
<br />
<table width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td>代号</td>
        <td>名称</td>
        <td>系列</td>
        <td>时间</td>
        <td>油耗</td>
        <td>功率</td>
    </tr>
    <?php
    
    $sql = "select * from car where{$tj1} and {$tj2}";
    
    $result = $db->query($sql);
    $attr = $result->fetch_all();
    
    foreach($attr as $v)
    {  
        //替换字符串  括号里(我要查找的关键字 , 替换成什么 , 字符串 )
        $str = str_replace($name,"<span style='color:red'>{$name}</span>",$v[1]);  //也可以用 mark 可以直接做特殊处理 给文字做了标记
        
        echo"<tr>
        <td>{$v[0]}</td>
        <td>{$str}</td>
        <td>{$v[2]}</td>
        <td>{$v[3]}</td>
        <td>{$v[4]}</td>
        <td>{$v[5]}</td>
    </tr>";
    }
    ?>
</table>
</body>

一个搜寻时

 

两个条件同时搜寻时

显示查找值

<div>请输入名称:
<input type="text" name="name" value="<?php echo $name?>" />

如果查询没有结果,显示提示无信息怎么做?

 

posted @ 2016-12-22 14:11  欧元  阅读(229)  评论(0编辑  收藏  举报