SQL語句的模糊查找:like條件指定某一字段的時候,通過通配符的"%_"的作用來實現模糊查找功能。
例子:
如以php開頭:select * from table where subject like '%php';
以php結尾:select * from table where subject like 'php%';
包含php: select * from table where subject like '%php%';
註釋:%表示0或多個字符 _表示單個字符
多關鍵字搜索:
提交表單(提交一個或者多個關鍵字或者用空格或者用+號)->php表單的提交($key=explode('',))->執行sql語句(subject like '%$key[0]%')->輸出結果
加亮顯示:用正則替換即可。接下來就是實例。
二、$_POST、$_GET的區別和特點
1. GET是從服務器上獲取數據,POST是向服務器傳送數據。
2. GET是把參數數據隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個字段一一對應,在URL中可以看到。POST是通過HTTP POST機制,將表單內各個字段與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。
3. 對於GET方式提交表單數據,服務器端用$_GET[‘name’]獲取變量的值,對於POST方式提交表單數據,服務器端用$_POST[‘name’]獲取提交的數據,當然,兩者都可以通過$_REQUEST[‘name’]獲得表單數據。對於REQUEST方式提交表單數據,服務器端用$_REQUEST[‘name’]獲取變量的值,但這種方式很少用。
4. GET傳送的數據量較小,不能大於2KB。POST傳送的數據量較大,一般被默認爲不受限制。但理論上,一般認爲不能超過100KB。
5. GET安全性非常低,POST安全性較高。
6. GET表單值可以通過_GET獲取;但通過action的url設置的參數總是獲取不到的,<form method="get" action="a.asp?b=b">跟<form method="get"action="a.asp">是一樣的,也就是說,在這種情況下,GET方式會忽略action頁面後邊帶的參數列表。POST表單值可以通過_POST獲取;但通過action的url參數設置的參數則可以不能通過_POST獲取到。action=test.php?id=1這種就是GET方式傳值,可以用$_REQUEST和$_GET接受傳值,但不能用POST方式獲取到值,即使表單是POST方式提交。所在,在提交表單時,如果action中同時有參數,最好只能通過POST表單方式,對於表單內數據,直接通過POST獲取,對於action中參數,童工GET獲取。
在做數據查詢時,建議用GET方式,而在做數據添加、修改或***時,建議用POST方式。
request是先讀取 get再讀post 的, 同時存在, 即覆蓋掉前面的變量。
request是先讀取 get再讀post 的, 同時存在, 即覆蓋掉前面的變量。其實,在php配置文件php.ini中有一個設置項:variables_order = "GPCS" ,GPCS分別是GET,POST,Cookie,Server的首字母縮寫,variables_order = "GPCS"含義是php文件中變量的解析順序是GET,POST,Cookie和Server。
代碼如下:
<?php
$conn = @mysql_connect("localhost", "root", "") or die("數據庫鏈接錯誤");
mysql_select_db("bbs", $conn);
mysql_query("set names 'GBK'"); //使用GBK中文編碼;
if($_GET['key']) {
$sql = "SELECT * FROM search WHERE details LIKE '%$_GET[key]%'";
$query = mysql_query($sql);
while($r=mysql_fetch_array($query)) {
echo "$r[details]"."<br>";
}
}
?>
<html>
<body>
<form action="" method="get">
關鍵字:
<input type="text" name="key" />
<input type="submit" name="sub" value="搜索" />
</form>
</body>
</html>