作者:虎仔球妈_459 | 来源:互联网 | 2023-05-18 07:07
最近又在看php , 新学者, 菜鸟的说》》》》
今天做了一个简单的mysql查询功能,
index.html 查询条件页面:
search.php
1
2
3
4
5
6
7
8
9 php
10 $idea = $_POST['idea'];
11 $housetype = $_POST['housetype'];
12 $style = $_POST['style'];
13 $app = $_POST['app'];
14 $price = $_POST['price'];
15 $pubdate = $_POST['pubdate'];
16 # echo $idea, ' ', $housetype, ' ', $style, ' ', $app, ' ', $price, ' ', $pubdate;
17 $conn = mysql_connect("localhost", "thoupin", "D3w89X7z");
18 mysql_select_db("sample");
19 $query = "select * from `case` where `idea`='".$idea."'";
20
21 # housetype
22 if($housetype!="") {
23 $query.=" && `housetype`='".$housetype."'";
24 }
25 # style
26 if($style!="") {
27 $query.=" && `style`='".$style."'";
28 }
29 # app
30 if($app!="") {
31 $query.=" && `app`='".$app."'";
32 }
33 # price
34 /*
35 if($price!="") {
36 switch($price) {
37 case "A":
38 $query.=" && `price`<50000";
39 break;
40 case "B":
41 $query.=" && `price`>=50000";
42 break;
43 }
44 }
45 # pubdate
46
47 if($pubdate!="") {
48 switch($pubdate) {
49 case "A":
50 $query.=" && TO_DAYS(NOW()) - TO_DAYS(`pubdate`)<=7";
51 break;
52 case "B":
53 $query.=" && TO_DAYS(NOW()) - TO_DAYS(`pubdate`)<=30";
54 break;
55 case "C":
56 $query.=" && TO_DAYS(NOW()) - TO_DAYS(`pubdate`)<=91";
57 break;
58 case "D":
59 $query.=" && TO_DAYS(NOW()) - TO_DAYS(`pubdate`)<=183";
60 break;
61 }
62 }
63 */
64 # result
65 $query.=" order by `pid` limit 0, 20;";
66 @mysql_query("set names 'utf8'", $conn);
67 $result = mysql_query($query, $conn);
68 if($result) {
69 $rows = mysql_num_rows($result);
70 if($rows != 0) {
71 while($myrow=mysql_fetch_array($result)) {
72 echo '';
73 echo " | ";
74 echo "
75 $myrow[pid]
76 $myrow[idea]
77 $myrow[style]($myrow[housetype])
78 [$myrow[pubdate]]";
79 echo ' | ';
80 echo "详细信息 | ";
81 echo '';
82 }
83 }
84 } else {
85 echo "
没有符合查找条件的记录!
|
";
86 }
87
88 echo "
";
89 ?>
90
91
92
运行的结果为:
注意这一句:
$query = "select * from `case` where `idea`='".$idea."'";
当时我是直接一律用的单引号 (即" ' "), 然后就是如下结果:
尔后将单引号改为`` 后可以得到正确结果:
可见在phpMyAdmin 的查询环境(windows utf-8)中,单引号应为``;
但是绝不是一律使用``, 例如下列情况:
可见, 对于条件字符,应使用双引或者单引 均可,(而非``):
另外,对于数字, 需不需要引号为所谓, 但建议加上。
对于表名,列名, 应使用`` , 而对于条件数据, 应使用'', 或者""。