php41:PHP站內搜索:關鍵字、加亮顯示

  1. 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或多個字符   _表示單個字符

  2. 多關鍵字搜索:

    提交表單(提交一個或者多個關鍵字或者用空格或者用+號)->php表單的提交($key=explode('',))->執行sql語句(subject like '%$key[0]%')->輸出結果

  3. 加亮顯示:用正則替換即可。接下來就是實例。



二、$_POST、$_GET的區別和特點

  1. 1.         GET是從服務器上獲取數據,POST是向服務器傳送數據。

  2. 2.         GET是把參數數據隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個字段一一對應,在URL中可以看到。POST是通過HTTP POST機制,將表單內各個字段與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。

  3. 3.         對於GET方式提交表單數據,服務器端用$_GET[‘name’]獲取變量的值,對於POST方式提交表單數據,服務器端用$_POST[‘name’]獲取提交的數據,當然,兩者都可以通過$_REQUEST[‘name’]獲得表單數據。對於REQUEST方式提交表單數據,服務器端用$_REQUEST[‘name’]獲取變量的值,但這種方式很少用。

  4. 4.         GET傳送的數據量較小,不能大於2KB。POST傳送的數據量較大,一般被默認爲不受限制。但理論上,一般認爲不能超過100KB。

  5. 5.         GET安全性非常低,POST安全性較高。

  6. 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獲取。

  7. 在做數據查詢時,建議用GET方式,而在做數據添加、修改或***時,建議用POST方式。

  8. 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。


  9. wKioL1ON-sfTMGWzAAFKhOvH1Xw352.jpg

  10. wKiom1ON-vmQBnWtAAFDJrq-foA932.jpgwKioL1OOvTmwTUBrAACM4psbLNM112.jpg

  11. 代碼如下:

    <?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>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章