一、关键字查询
(1)查询一张表,要把表先列出来,显示出查询的表
<table width="100%" cellpadding="0" cellspacing="0" border="1"> //正常的查看表,前几天刚学习的内容
<tr>
<td>代号</td>
<td>名称</td>
<td>系列</td>
<td>时间</td>
<td>油耗</td>
<td>功率</td>
</tr>
<?php //查看数据库中的内容
$db = new MySQLi("localhost","root","123","test3");
$sql = " select * from car ";
$result = $db->query($sql);
while($attr = $result->fetch_row())
{
$str = str_replace($name,"<span style='color:red'>{$name}</span>",$attr[1]);
echo "<tr><td>{$attr[0]}</td><td>{$attr[1]}</td><td>{$attr[2]}</td><td>{$attr[3]}</td><td>{$attr[4]}</td><td>{$attr[5]}</td></tr>";
}
?>
</table>
(2)表显示出来后,查询要有输入框和查询按钮
<form action="test12_main.php" method="post"> //查询关键词刷新的页面应该是本页面,也应该是在本页面中显示查询后的内容,指向的页面就是本页面
根据名称查询:<input type="text" name="name" />
<input type="submit" value="查询" />
</form>
(3)重要的怎么建立关键字查询
利用模糊查询来查看,模糊查询的关键字就是like(还有就是输入的关键字要特殊显示可以在遍历表中进行)
<?php
$db = new MySQLi("localhost","root","123","test3");
$tiaojian = " 1=1 "; //条件横成立,2=2也可以,只要恒成立就可以
$name = ""; //外面的也可以使用
if(!empty($_POST["name"])) //判断语句:name是非空的就进入下面
{
$name = $_POST["name"];
$tiaojian = " name like '%{$name}%' "; //用户自己输入的查询条件
}
?>
while($attr = $result->fetch_row())
{
$str = str_replace($name,"<span style='color:red'>{$name}</span>",$attr[1]); //关键字处理,用到的函数是替换str_replace
echo "<tr><td>{$attr[0]}</td><td>{$str}</td><td>{$attr[2]}</td><td>{$attr[3]}</td><td>{$attr[4]}</td><td>{$attr[5]}</td></tr>";
} //相应的在输出的所以好是1的也要改成替换赋值的$str
(4)还有就是输入框输入关键字查询后,输入框中的字应该还是显示的
这样就在文本框中的value值前嵌入php语言,输出$name,这个其实就和设置默认值的方法一样
根据名称查询:<input type="text" name="name" value="<?php echo $name ?>" />
二、多条件查询
除了php语句之外,其他的查看表、添加文本框都是和关键字查询一样的写法,就不重复的书写了。
$db = new MySQLi("localhost","root","123","test3");
$tiaojian = " 1=1 "; //条件一恒成立:恒成立也可以是2=2,只要是恒成立就可以
$tj = " 1=1 "; //条件二恒成立
$name = "";
if(!empty($_POST["name"])) //第一个条件的判断(用到了模糊查询)
{
$name = $_POST["name"];
$tiaojian = " name like '%{$name}%' "; //进入判断后就要执行自己的查询条件,就不是恒成立的条件了
}
if(!empty($_POST["brand"])) //第二个条件判断(正常查询)
{
$brand = $_POST["brand"];
$tj = " brand = '{$brand}' "; //同第一个条件解释
}
这样:有几个条件就做几个条件变量,第一个条件不为空就执行的第一个if,第二个条件不为空执行的第二个if,两个都为空就是差所有的