一. 将数据库数据访问封装成类
<?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 false if($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> <?php include("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>