数据访问之查询数据 ---2017--05-02
查询逻辑:
1.如果没有提交数据,显示所有
2.如果有提交数据,根据关键字查询显示
一、只有一个查询条件时:
实现效果:当输入关键词,点击查询可以查询带有关键词的所有字段
效果图如下:


代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--此段php代码放在前面是因为,想让输入的关键词在点击查询后仍然显示,将$name用value输出。-->
<?php
$sql = "select * from car";
$name = ""; //给默认值为空,不在外面定义一个,后面没法调用。必须定义
if(!empty($_POST))
{
$name=$_POST["name"];
$sql = "select * from car where name like '%{$name}%'";
}
?>
<br /><br />
<form action="chaxun.php" method="post">
汽车名称:<input type="text" name="name" value="<?php echo $name ?>"/>
<input type="submit"value="查询" />
</form>
<br /><br />
<table cellpadding="0px" cellspacing="0px" border="1px" width="80%">
<tr>
<td>code</td>
<td>name</td>
<td>brand</td>
<td>time</td>
<td>exhaust</td>
<td>price</td>
</tr>
<?php
require "DB.class.php";
$db = new DB();
$arr=$db->query($sql);
//var_dump($arr);
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[6]}</td>
<td>{$v[7]}</td>
</tr>";
}
?>
</table>
</body>
</html>
二、多个查询条件时:
实现效果:1个条件有两种情况,2个条件有4种情况,3个条件有9种情况......要有if实现判断条件
效果图:



代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
require "DB.class.php";
$db = new DB();
//在外面设置默认值,便于if外调用
$name = "";
$brand = "";
//假设两个条件,且为横成立; 前后都有空格
$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;
echo $sql;
?>
<br /><br />
<div>
<form action="chaxun1.php" method="post">
汽车名称:<input type="text" name="name" value="<?php echo $name; ?>"/>
汽车品牌:<input type="text" name="brand" value ="<?php echo $brand ?>" />
<input type="submit"value="查询" />
</form>
</div>
<br />
<table cellpadding="0px" cellspacing="0px" border="1px" width="80%">
<tr>
<td>code</td>
<td>name</td>
<td>brand</td>
<td>time</td>
<td>exhaust</td>
<td>price</td>
</tr>
<?php
$arr=$db->query($sql);
//var_dump($arr);
foreach($arr as $v){
//实现关键字的颜色变化
$str = str_replace($name,"<span style='color:red'>{$name}</span>",$v[1]);
$str1 = str_replace($brand,"<span style='color:red'>{$brand}</span>",$v[2]);
echo"<tr>
<td>{$v[0]}</td>
<td>{$str}</td>
<td>{$str1}</td>
<td>{$v[3]}</td>
<td>{$v[6]}</td>
<td>{$v[7]}</td>
</tr>";
}
?>
</table>
</body>
</html>
难点:设立恒等的条件,以及条件的拼接,空格等

浙公网安备 33010602011771号