我的php學習筆記(三十七) PHP站內搜尋:多關鍵字、加亮顯示
SELECT * FROM table WHERE title LIKE 'PHP%'
搜尋以PHP結束:
SELECT * FROM table WHERE title LIKE '%PHP'
搜尋包含PHP100:
SELECT * FROM table WHERE title LIKE '%PHP%' 注:%表示0個或多個字元構成的字串,_表示單個字元,類似於正則表示式中元字元的作用 在LIKE後面可以增加其他條件,類似於if語句 例子的資料庫中的內容
<?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 `text` WHERE content LIKE '%$_GET[key]%'"; $query = mysql_query($sql); while($r=mysql_fetch_array($query)) { echo "$r[content]"."<br>"; } } ?> <html> <body> <form action="" method="get"> 關鍵字: <input type="text" name="key" /> <input type="submit" name="sub" value="搜尋" /> </form> </body> </html>
搜尋php的效果圖
二、多個關鍵字搜尋的原理和技巧 單個關鍵字搜尋的步驟:提交表單->PHP檔案接收關鍵字->執行SQL->輸出結果 如果是多關鍵字的時候:在提交表單的時候將多個關鍵字用空格或+號分隔開,然後PHP檔案接收到所提交的字串後,通過一些函式如:explore函式將字串拆分成多個關鍵字存放在陣列中;然後就可以在資料庫中通過多個LIKE模糊查詢得到所要查詢的內容。 三、替換關鍵字高亮顯示 通過模糊查詢得到所要的內容後,使用正則表示式替換所要查詢的內容,可以通過改變顏色,加粗等改變顯示的效果。
查詢php 學習的效果圖<?php $conn = @mysql_connect("localhost", "root", "") or die("資料庫連結錯誤"); mysql_select_db("bbs", $conn); mysql_query("set names 'GBK'"); //使用GBK中文編碼; if($_GET['key']) { $k = explode(" ", $_GET[key]); $sql = "SELECT * FROM `text` WHERE content LIKE '%$k[0]%' or content LIKE '%$k[1]%'"; $query = mysql_query($sql); while($r=mysql_fetch_array($query)) { $r[content] = preg_replace("/($k[0])/i", "<font color=red><b>\\1</b></font>", $r[content]); $r[content] = preg_replace("/($k[1])/i", "<font color=red><b>\\1</b></font>", $r[content]); echo "$r[content]"."<br>"; } } ?> <html> <body> <form action="" method="get"> 關鍵字: <input type="text" name="key" /> <input type="submit" name="sub" value="搜尋" /> </form> </body> </html>
相關推薦
我的php學習筆記(三十七) PHP站內搜尋:多關鍵字、加亮顯示
一、SQL語句中的模糊查詢 主要通過LIKE(不區分大小寫)關鍵字實現模糊查詢。LIKE條件一般用在指定搜尋某欄位的時候, 通過"%"或者" _" 萬用字元的作用實現模糊查詢功能,萬用字元可以在欄位前面也可以在後面或前後都有。只通過LIKE是無法實現模糊查詢的
PHP站內搜尋:多關鍵字、加亮顯示
一、SQL語句中的模糊查詢 主要通過LIKE(不區分大小寫)關鍵字實現模糊查詢。LIKE條件一般用在指定搜尋某欄位的時候, 通過"%"或者" _" 萬用字元的作用實現模糊查詢功能,萬用字元可以在欄位前面也可以在後面或前後都有。只通過LIKE是無法實現模糊查詢的,因
OpenCV學習筆記(三十七)——實用函式、系統函式、巨集core
如果你想在OpenCV的基礎上自己開發一些演算法,我覺得core這部分內容不得不精啊,能熟練使用OpenCV的資料結構是開發的基礎,又是重中之重。最近就又拌在這上頭了,所以再重溫一下。這次分析一下Utility and System Functions and Macros
Unity3D學習筆記(三十七):頂點偏移和溶解
mar exc car struct range pass 偏移 discard 通過 頂點偏移 沿向量方向偏移,沿自身坐標系方向偏移 沿法線方向偏移,球體放大,立方體拆分 Shader "Lesson/VFVertOffsetVertex" { Proper
Python學習筆記(四十七)SMTP發送郵件
email debug lib 第一個 發郵件 參數 html郵件 命令 兼容 摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432005
Linux學習筆記(二十七)sed
sedsedsed是一種流編輯器,它是文本處理中非常中的工具,能夠完美的配合正則表達式使用,功能不同凡響。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成後,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾
Linux學習筆記(三十一)日常運維三
ifconfig一、linux網絡相關、 ifconfig ifconfig //查看網卡ip(yum install net-tools) ifup ens33/ifdown ens33 //開啟網卡,關閉網卡,只有一個網卡時,一旦關閉了網卡就會斷開遠程鏈接,只能去服務器主機重新打
Linux學習筆記(三十二)iptables filter表案例、 iptables nat表應用
iptables filter表案例、 iptables nat表應用 一、iptables filter表案例需求:將80、20、21端口放行,對22端口指定特定的ip才放行以下為操作方法:vim /usr/local/sbin/iptables.sh //加入如下內容#! /bin/bas
Effective_STL 學習筆記(二十七) 用 distance 和 advance 把 const_iterator 轉化成 iterator
並不存在從 const_iterator 到 iterator 之間的隱式轉換 一種安全的、可移植的方法獲取他所對應的 iterator: 1 typedef deque<int> IntDeque; // 方便的typedef 2 typedef Int
Effective_STL 學習筆記(三十一) 瞭解你的排序選擇
排序出 20 個質量最高的 Widget,一種演算法叫作 partial_sort: 1 bool qualityCompare( const Widget & lhs, const Widget & rhs ) 2 { 3 // 返回 lhs 的質量是
Effective_STL 學習筆記(三十五) 通過 mismatch 和 lexicographical 比較實現簡單的忽略大小寫字串比較
怎麼用 STL 進行忽略大小寫的字串的比較? 首先實現兩個字元忽略大小寫的比較: 1 int ciCharCompare( char c1, char c2 ) // 忽略大小寫比較字元 2 { 3 int Ic1 = tolower(
Effective_STL 學習筆記(三十六) 了解 copy_if 的正確 實現
了解 算法 十六 ota eve nbsp remove rep ack STL 提供了 11 個名字帶有 “copy” 的算法 copy copy_backward replace_copy reverse_copy re
Effective_STL 學習筆記(三十九) 用純函數做判斷式
函數類 effect false 函數 轉換 bsp 對象 stl 排序 1. 判斷式是返回 bool (或者其他隱式轉換為 bool 的東西)。判斷式在 STL 中廣泛使用。標準關聯容器的比較函數是判斷式,判斷式函數常常作為參數傳給算法,比如 find_if 和多種排
Effective_STL 學習筆記(四十七) 避免產生只寫程式碼
假設有一個 vector<int>,想要去掉 vector 中的值小於 x 而出現在至少和 y 一樣大的最後一個元素之後的所有元素 1 vector<int> v; 2 int x, y; 3 . . . 4 v.erase( remove_if
Effective_STL 學習筆記(四十七) 避免產生只寫代碼
有一個 find tor ive type 使用 rbegin pan begin 假設有一個 vector<int>,想要去掉 vector 中的值小於 x 而出現在至少和 y 一樣大的最後一個元素之後的所有元素 1 vector<int>
oracle sql 高階程式設計學習筆記(二十七)
半聯結定義 當兩張表進行聯結的時候,如果表1中的資料行是否出現在結果集中需要根據表2中出現或不出現至少一個相匹配的資料行來判斷,這種情況就會發生半聯結;而反聯結便是半聯結的補集,它們會作為資料庫中常見的聯結方法如NESTED LOOPS,MERGE SORT
Javaweb學習筆記——(二十七)——————泛型、泛型的萬用字元、反射泛型資訊、反射註解、註解
泛型 1.泛型類:具有一個或多個型別變數的類,稱之為泛型類 class A<T>{ } 2.在建立泛型例項時,需要為其型別變數賦值 A<String> a = new A<String>();
Java開發筆記(三十七)利用正則串分割字串
前面介紹了處理字串的常用方法,還有一種分割字串的場景也很常見,也就是按照某個規則將字串切割為若干子串。分割規則通常是指定某個分隔符,根據字串內部的分隔符將字串進行分割,例如逗號、空格等等都可以作為字串的分隔符。正好String型別提供了split方法用於切割字串,只要字串變數呼叫split方法,並把分隔符作為
Django學習筆記(三十二):datetime.timedelta類介紹
datetime.timedelta物件代表兩個時間之間的時間差,兩個date或datetime物件相減就可以返回一個timedelta物件。 如果有人問你昨天是幾號,這個很容易就回答出來了。但是如果問你200天前是幾號,就不是那麼容易答出來。而在Python中dateti
Django學習筆記(三十一):django orm extra
extra 在django orm中使用複雜的sql語句 extra(select=None, where=None, params=None, tables=None, order_by=None, select_params=None) 有些情況下,Django 的查