一、关键字查询
(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,两个都为空就是差所有的