多条件查询练习
如何做查询,首先引入一张汽车表,输出所有数据查出来显示,然后再做查询
<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?>" />
如果查询没有结果,显示提示无信息怎么做?