一、关键字查询
(1)查询一张表,要把表先列出来,显示出查询的表
1 <table width="100%" border="1" cellpadding="0" cellspacing="0"> 2 <tr> 3 <td>代号</td> 4 <td>名称</td> 5 <td>系列</td> 6 <td>上市时间</td> 7 <td>价格</td> 8 </tr> 9 <?php 10 require("../0428/DBDA.class.php"); 11 $db = new DBDA(); 12 $sql = "select * from car"; 13 $name=""; 14 if(!empty($_POST["name"])) 15 { 16 $name = $_POST["name"]; 17 $sql = "select * from car where name like '%{$name}%' "; 18 } 19 20 21 $arr = $db->query($sql); 22 23 24 foreach($arr as $v) 25 { 26 27 echo "<tr> 28 <td>{$v[0]}</td> 29 <td>{$v[1]}</td> 30 <td>{$v[2]}</td> 31 <td>{$v[3]}</td> 32 <td>{$v[7]}</td> 33 </tr>"; 34 } 35 36 ?> 37 </table>
(2)表显示出来后,查询要有输入框和查询按钮
1 <form action="chaxun.php" method="post"> 2 <div>名称:<input type="text" name="name" /> <input type="submit" value="查询" /></div> 3 </form>//这是很具名称查询
(3)重要的是怎么建立关键字查询:
利用模糊查询来查看,模糊查询的关键字就是like(还有就是输入的关键字要特殊显示可以在遍历表中进行)
1 <?php 2 require("../0428/DBDA.class.php"); 3 $db = new DBDA(); 4 $sql = "select * from car"; 5 $name=""; 6 if(!empty($_POST["name"])) 7 { 8 $name = $_POST["name"]; 9 $sql = "select * from car where name like '%{$name}%' "; 10 } 11 12 13 $arr = $db->query($sql); 14 15 16 foreach($arr as $v) 17 { 18 19 echo "<tr> 20 <td>{$v[0]}</td> 21 <td>{$v[1]}</td> 22 <td>{$v[2]}</td> 23 <td>{$v[3]}</td> 24 <td>{$v[7]}</td> 25 </tr>"; 26 } 27 28 ?>
(4)还有就是输入框输入关键字查询后,输入框中的字应该还是显示的
这样就在文本框中的value值前嵌入php语言,输出$name,这个其实就和设置默认值的方法一样
1 <div>名称:<input type="text" name="name" value="<?php echo $name ?>" />
二、多条件查询
其他的和查询一样,就不详细写了
1 <?php 2 require("DBDA.class.php");//这个地方我用的是封装类 3 $db = new DBDA(); 4 5 //1.如果没有提交数据,显示所有 6 //2.如果有提交数据,根据关键字查询显示 7 $name=""; 8 $tj1 = " 1=1 "; //第一个条件,对应名称 9 $tj2 = " 1=1 "; //第二个条件,对应系列 10 if(!empty($_POST["name"])) 11 { 12 $name = $_POST["name"]; 13 $tj1 = " name like '%{$name}%' "; 14 } 15 if(!empty($_POST["brand"])) 16 { 17 $brand = $_POST["brand"]; 18 $tj2 = " brand = '{$brand}' "; 19 } 20 //总条件 21 $tj = " {$tj1} and {$tj2}"; 22 23 $sql = "select * from car where ".$tj; 24 echo $sql; 25 ?>
注:有几个条件就做几个条件变量,第一个条件不为空就执行的第一个if,第二个条件不为空执行的第二个if,两个都为空就是差所有的。