php单条件查询,关键字查询

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title></title>
 6 </head>
 7 
 8 <body>
 9 <h1>查询汽车页面</h1>
10 <!--根据一个关键字来查到所有的结果-->
11 <div>请输入名称:
12 <input type="text" name="name" /><!--输入框-->
13 <input type="submit" value="查询" /><!--查询按钮-->
14 </div>
15 <dr>
16 
17 
18 <table width="100%" border="1" cellpadding="0" cellspacing="0">
19     <tr>
20         <td>代号</td>
21         <td>名称</td>
22         <td>系列</td>
23         <td>时间</td>
24         <td>油耗</td>
25         <td>功率</td>
26     </tr>
27    <!-- 嵌入PHP读数据库
28     第一步-->
29     <?php
30     //造链接对象
31     $db = new MySQLi("localhost","root","511108","text");
32     //写SQL语句
33     $sql = "select * from car";
34     //执行
35     $result = $db->query($sql);
36     //读取数据
37     $attr = $result->fetch_all();//返回的值用$attr存,得个二维数组,用foreach循环
38     //foreach循环便利显示
39     foreach($attr as $v)
40     {
41         echo "<tr>
42         <td>{$v[0]}</td>
43         <td>{$v[1]}</td>
44         <td>{$v[2]}</td>
45         <td>{$v[3]}</td>
46         <td>{$v[4]}</td>
47         <td>{$v[5]}</td>
48     </tr>";    
49     }
50     
51     
52     
53     ?>
54 
55 
56 
57 
58 </table>
59 
60 </body>
61 </html>
下图是效果图

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title></title>
 6 </head>
 7 
 8 <body>
 9 <h1>查询汽车页面</h1>
10 
11 <?php
12 //造链接对象。取出用户传的值
13     $db = new MySQLi("localhost","root","511108","text");
14 //1先定个$name = "";变量
15 //$name = $_POST["name"];//取name的值
16 $name = "";
17 if(!empty($_POST["name"]))//取name //加上一个叹号!如果name里面为非空就近下面
18 {
19     $name = $_POST["name"];    
20 }
21 $tj = " name like'%{$name}%'";//如果第一次查询$name是空的,就默认表里所有数据,如果$name里面有值比如宝马就会把所有带有宝马的找出来
22 
23 
24 
25 
26 ?>
27 
28 
29 <form action="chaxunqiche.php" method="post"><!--指向当前页面并且用post方式传一个值-->
30 <!--根据一个关键字来查到所有的结果-->
31 <div>请输入名称:
32 <input type="text" name="name" /><!--输入框.表单元素文本框-->
33 <input type="submit" value="查询" /><!--查询按钮-->
34 </div>
35 <dr>
36 
37 
38 <table width="100%" border="1" cellpadding="0" cellspacing="0">
39     <tr>
40         <td>代号</td>
41         <td>名称</td>
42         <td>系列</td>
43         <td>时间</td>
44         <td>油耗</td>
45         <td>功率</td>
46     </tr>
47    <!-- 嵌入PHP读数据库
48     第一步-->
49     <?php
50     //造链接对象
51     //$db = new MySQLi("localhost","root","511108","text");移到上面了是一样的
52     //写SQL语句
53     $sql = "select * from car where {$tj}";//拼成一个完整的SQL语句
54     echo $sql;//输出下SQL语句
55     //执行
56     $result = $db->query($sql);
57     //读取数据
58     $attr = $result->fetch_all();//返回的值用$attr存,得个二维数组,用foreach循环
59     //foreach循环便利显示
60     foreach($attr as $v)
61     {
62         echo "<tr>
63         <td>{$v[0]}</td>
64         <td>{$v[1]}</td>
65         <td>{$v[2]}</td>
66         <td>{$v[3]}</td>
67         <td>{$v[4]}</td>
68         <td>{$v[5]}</td>
69     </tr>";    
70     }
71     
72     
73     
74     ?>
75 
76 
77 
78 
79 </table>
80 
81 </body>
82 </html>
下图要查询的数据,因为没有传过来的值所以$name是空字符串,拼接%%没有
其实就是输出的select * from car where name like'%%'这句话
空的就返回全部

查询里:输入奥迪如下图

以上是单条件查询。有缺陷

让关键字奥迪变色

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title></title>
 6 </head>
 7 
 8 <body>
 9 <h1>查询汽车页面</h1>
10 
11 <?php
12 //造链接对象。取出用户传的值
13     $db = new MySQLi("localhost","root","511108","text");
14 //1先定个$name = "";变量
15 //$name = $_POST["name"];//取name的值
16 $tj = "  1=1 ";//条件默认恒成立,在去下面判断下,如果传值就进if  //暂时不用他换前面的$name = "";
17 $name = "";//把他定义在这仅仅是去给他改值,这样这个页面都能访问到
18 
19 if(!empty($_POST["name"]))//取name //加上一个叹号!如果name里面为非空就近下面
20 {
21     $name = $_POST["name"];//把这个变量定义在哪个花狐号{}里面他就在哪里起作用,出去就找不到,不能用了
22     $tj = " name like '%{$name}%' ";    
23 }
24 $tj = " name like'%{$name}%'";//如果第一次查询$name是空的,就默认表里所有数据,如果$name里面有值比如宝马就会把所有带有宝马的找出来
25 
26 
27 ?>
28 
29 
30 <form action="chaxunqiche.php" method="post"><!--指向当前页面并且用post方式传一个值-->
31 <!--根据一个关键字来查到所有的结果-->
32 <div>请输入名称:
33 <input type="text" name="name" /><!--输入框.表单元素文本框-->
34 <input type="submit" value="查询" /><!--查询按钮-->
35 </div>
36 <dr>
37 
38 
39 <table width="100%" border="1" cellpadding="0" cellspacing="0">
40     <tr>
41         <td>代号</td>
42         <td>名称</td>
43         <td>系列</td>
44         <td>时间</td>
45         <td>油耗</td>
46         <td>功率</td>
47     </tr>
48    <!-- 嵌入PHP读数据库
49     第一步-->
50     <?php
51     //造链接对象
52     //$db = new MySQLi("localhost","root","511108","text");移到上面了是一样的
53     //写SQL语句
54     $sql = "select * from car where {$tj}";//拼成一个完整的SQL语句
55     //echo $sql;//输出下SQL语句
56     //执行
57     $result = $db->query($sql);
58     //读取数据
59     $attr = $result->fetch_all();//返回的值用$attr存,得个二维数组,用foreach循环
60     //foreach循环便利显示
61     foreach($attr as $v)//$attr便利下取出每个小数据$v
62     {
63         $v[1];//就是汽车名称,将来要显示的
64         //str_replace相当于查找替换。要查找的是关键字$name就是<span style='color:red'>{$name}</span>颜色替换的是$v[1]
65         //有2种方式让关键字变色 ,1种,$str = str_replace($name,"<span style='color:red'>{$name}</span>",$v[1]);//替换字符串,需要3个参数 之后把它交给变量$str =  第2种方式<mark></mark>特殊处理
66         $str = str_replace($name,"<mark>{$name}</mark>",$v[1]); 
67         echo "<tr>
68         <td>{$v[0]}</td>
69         <td>{$str}</td>
70         <td>{$v[2]}</td>
71         <td>{$v[3]}</td>
72         <td>{$v[4]}</td>
73         <td>{$v[5]}</td>
74     </tr>";    
75     }
76     
77     
78     
79     ?>
80 
81 
82 
83 
84 </table>
85 
86 </body>
87 </html>

原文地址:https://www.cnblogs.com/axj1993/p/6433511.html