单条件和多条件查询
首先在数据库中,做这样一张汽车表:
然后写代码,在页面中导出这张表
再在上面加个文本框还有查询按钮
<!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> <h1>汽车查询</h1> <?php $db = new MySQLi("localhost","root","726","shuang" ); $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> <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}"; echo $sql; $relsult = $db->query($sql); $attr=$relsult->fetch_all(); foreach($attr as $v) { //"<span style='color:red'>{$name}</span>" 这个方式也可以,让字体变红 $str=str_replace($name,"<mark>{$name}</mark>",$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> </html>
运行后:
输入关键字“奥迪”
单条件查询就做好了
下面再来新建一个页面,做多条件查询
先复制单条件查询页面的代码,在它的条件上增加,改变
<!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> <h1>汽车查询</h1> <?php $db = new MySQLi("localhost","root","726","shuang" ); $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="carduotiaojian.php" method="post"> <div>请输入名称: <input type="text" name="name" /> 请输入系列代号: <input type="text" name="brand" /> <input type="submit" value="查询" /> </div> <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}"; echo $sql; $relsult = $db->query($sql); $attr=$relsult->fetch_all(); if(count ($attr)>0) //判断有没有输出数据 { foreach($attr as $v) { //"<span style='color:red'>{$name}</span>" 这个方式也可以,让字体变红 $str=str_replace($name,"<mark>{$name}</mark>",$v[1]); 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>"; } } else { echo "<script> alert ('没有查到数据');</script>"; } ?> </table> </body> </html>
在这里又多加了一个查询条件,有几个查询条件,就加几个if
这里有两个
如果两个文本只填一个的话也是可以的,如果输入名称“宝马” 系列号“b004”
如果两个都不填,然后查询,返回的还是默认全部的值
如果随便填一个没有的值,则会弹出对话框:
要注意返回的地址是否正确,不然就不会运行成功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?