单条件查询:
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}" ; |
效果图:
这样:有几个条件就做几个条件变量,第一个条件不为空就执行的第一个条件,第二个条件不为空执行的第二个条件,两个都为空就是查寻所有的数据