php教程

超轻量级php框架startmvc

php查询及多条件查询

更新时间:2020-03-18 04:14:51 作者:startmvc
单条件查询:1.先要有一张表,显示出表中的数据:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transition

单条件查询:

1.先要有一张表,显示出表中的数据:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>无标题文档</title>
</head>

<body>
<table border="1" cellspacing="0" cellpadding="0">
 <tr>
 <td width="200">编号</td>
 <td width="200">姓名</td>
 <td width="200">电话</td>
 <td width="200" >分组</td>

 </tr>
 <?php
 $db = new mysqli("localhost","root","12345678","heiheihei");
 $sql = "select * from contacts";
 $r = $db->query($sql);
 //传值
 while ($attr = $r->fetch_row())
 {
 echo " <tr>
 <td>{$attr[0]}</td> 

 <td>{$attr[1]}</td>
 <td>{$attr[2]}</td>
 <td>{$attr[3]}</td>
 
 </tr>";
 }
 ?>
</table>


</body>
</html>

上图:

啥都没改的一张表

2.再来个from表单,让用户输入,点击查询:


<form action="shouye.php" method="post">
 <div>
 输入名字:<input type="text" name="name"/>
 <input type="submit" value="查询"/>

 </div>

</form>

如图:

3.建立关键字查询:


<?php
 //实现两个逻辑
 //1.如果没有post数据.查所有的
 //2.如果有post数据.根据条件查
 $db = new mysqli("localhost","root","12345678","heiheihei");
 //连接数据库
 $tj = " 1 = 1 ";
 $name="";
 //恒成立,如果没有写数据,那就让条件等于1=1,这个条件是查找所有的数据
 //如果你写入数据,按照数据查
 if(!empty($_POST))
 {
 $name = $_POST['name'];
 $tj = " name like '%{$name}%'";
 }
 //将条件拼接到SQl语句
 $sql = "select * from contacts WHERE {$tj}";
 echo $sql;

 //查出来
 $r = $db->query($sql);
 //传值
 if($r)
 //开始判断
 {
 //$attr已经接收到了值,现在只需要获取他的索引就行了
 while ($attr = $r->fetch_row())
 {
 //关键字特殊查询

 $str = str_replace($name,"<mark>{$name}</mark>",$attr[1]); //查找替换如ctrl+f
 //substr_replace(); 在指定位置替换
 //substr(); 截取字符串

 $gname = "select gname from groups WHERE gid='{$attr[3]}'";
 //分组表中的gid,和我点击的
 $nresult = $db->query($gname);
 $gname = $nresult->fetch_row();
 $nation = $gname[0];
 echo " <tr>
<td>{$attr[0]}</td> 

<td>{$str}</td>
<td>{$attr[2]}</td>
<td>{$nation}</td>


?>

图:

多条件查询:

前面照旧;

出了php的语句:


<?php
 //实现两个逻辑
 //1.如果没有post数据.查所有的
 //2.如果有post数据.根据条件查
 $db = new mysqli("localhost","root","12345678","heiheihei");
 //连接数据库
 $tj1 = " 1 = 1 ";
 $tj2 = " 1 = 1 ";//两个条件的恒等
 $name="";
 //恒成立,如果没有写数据,那就让条件等于1=1,这个条件是查找所有的数据
 //如果你写入数据,按照数据查
 if(!empty($_POST["name"])) //第一个条件的判断(用到了模糊查询)
 {
 $name = $_POST['name'];
 $tj1 = " name like '%{$name}%'";
 }
 if(!empty($_POST["tel"]))
 {
 $tel = $_POST["tel"];
 $tj2 = "tel = '$tel'";
 }
 //将条件拼接到SQl语句
 $sql = "select * from contacts WHERE {$tj1} AND {$tj2}";

效果图:

这样:有几个条件就做几个条件变量,第一个条件不为空就执行的第一个条件,第二个条件不为空执行的第二个条件,两个都为空就是查寻所有的数据

php多条件查询 php多条件查询数据库 php查询