单条件和多条件查询

时间:2022-03-29 05:40:59

首先在数据库中,做这样一张汽车表:

单条件和多条件查询

然后写代码,在页面中导出这张表

再在上面加个文本框还有查询按钮

<!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”

单条件和多条件查询

如果两个都不填,然后查询,返回的还是默认全部的值

如果随便填一个没有的值,则会弹出对话框:

单条件和多条件查询

要注意返回的地址是否正确,不然就不会运行成功