单条件查询:
1.先要有一张表,显示出表中的数据:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
<!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表单,让用户输入,点击查询:
1
2
3
4
5
6
7
8
|
<form action= "shouye.php" method= "post" >
<div>
输入名字:<input type= "text" name= "name" />
<input type= "submit" value= "查询" />
</div>
</form>
|
如图:
3.建立关键字查询:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
<?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的语句:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?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}" ;
|
效果图:
这样:有几个条件就做几个条件变量,第一个条件不为空就执行的第一个条件,第二个条件不为空执行的第二个条件,两个都为空就是查寻所有的数据