一. 将数据库数据访问封装成类
<?php class DB {public $host = "localhost"; //服务器地址public $uid = "root"; //用户名public $pwd = "123"; //密码//执行SQL语句,返回相应结果的方法//$sql代表要执行的SQL语句,$type代表SQL语句类型;0代表查询,1代表其他;$db代表要操作的数据库.function Query($sql,$type=0,$db="mydb") //默认为查询语句,操作的数据库为"mydb".{//1.造连接对象$dbconnect = new MySQLi($this->host,$this->uid,$this->pwd,$db);//2.判断是否出错!mysqli_connect_error() or die("连接失败!");//3.执行SQL语句$result = $dbconnect->query($sql);//4.判断是查询语句还是其他语句,若是查询语句则返回二维数组,否则返回true or falseif($type==0){return $result->fetch_all();}else {return $result;}} }
二. 单条件查询
<?php include("DB.class.php"); $db=new DB(); $cx=""; //先定义变量,方便下面使用 $value=""; if(!empty($_POST["name"])) //判断传过来的name值是否为空 {$name=$_POST["name"];$cx=" where Name like '%{$name}%'"; //查询字符串,注意where前面加空格,否则会出错$value=$name; } ?>
<h1>汽车查询页面</h1> <form action="" method="post"> <!--在哪个页面显示就提交到哪个页面,若为空就提交到当前页面--><div>请输入名称:
<input type="text" name="name" value="<?php echo $value; ?>" /> <!--点击查询后,查询关键字仍显示,可将value值设为$_post["name"]-->
<input type="submit" value="查询" /></div> </form> <br /> <table width="100%" border="1" cellpadding="0" cellspacing="0"><tr><td>代号</td><td>汽车名称</td><td>价格</td><td>油耗</td><td>功率</td></tr>
<?php $sql="select * from Car".$cx; $attr=$db->Query($sql); //只传一个参数sql,默认$type=0,$db="mydb" foreach($attr as $v) {//处理Name,让关键字特殊显示,可用替换字符串//$rp="<mark>{$value}</mark>"; //查询关键字加上Mark标签$rp="<span style='color:red'>{$value}</span>"; //查询关键字加上span标签,通过span标签更改样式$str=str_replace($value,$rp,$v[1]); //将$v[1]中的$value用$rp替换成为新字符串存在变量$str里echo "<tr><td>{$v[0]}</td><td>{$str}</td><td>{$v[7]}</td><td>{$v[4]}</td><td>{$v[5]}</td></tr>"; } ?> </table>
三. 多条件查询
先将多个条件设定为恒等式,再判断条件是否为空,再拼接查询语句,注意条件前面加空格
<h1>汽车查询页面</h1> <?phpinclude("DB.class.php");$db=new DB(); $vn=""; //花括号里面的变量必须在外面先定义才能在下面继续引用,否则会报错:未定义变量$vb="";$tj1= "1=1"; //条件1的判断$tj2 = "1=1"; //条件2的判断if(!empty($_POST["name"])) //判断: 若传过来的name不为空 {$tj1=" Name like '%{$_POST['name']}%'"; //注意Name前面的空格$vn=$_POST["name"];}if(!empty($_POST["brand"])) //有几个条件就判断几次 {$tj2=" Brand ='{$_POST['brand']}'"; $vb=$_POST["brand"];}$cx=" where {$tj1} and {$tj2}"; ?>
<form action="" method="post"><div>请输入名称:<input type="text" name="name" value="<?php echo $vn; ?>" /> 系列: <input type="text" name="brand" value="<?php echo $vb ?>" /> <input type="submit" value="查询" /></div> </form> <br /> <table width="800" 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".$cx;$attr=$db->Query($sql); //只传一个参数sql,默认$type=0,$db="mydb"foreach($attr as $v){//处理Name//$rp="<mark>{$value}</mark>"; //查询关键字加上Mark标签,突出关键字$rp1="<span style='color:red'>{$vn}</span>"; //查询关键字加上span标签,通过span标签更改样式$rp2="<span style='color:green'>{$vb}</span>";$str1=str_replace($vn,$rp1,$v[1]);$str2=str_replace($vb,$rp2,$v[2]);echo "<tr><td>{$v[0]}</td><td>{$str1}</td><td>{$str2}</td><td>{$v[7]}</td><td>{$v[4]}</td><td>{$v[5]}</td></tr>"; }?> </table>