2010年7月20日 星期二

[PHP+MySQL]另一種全文檢索的方法

mysql_select_db("連接資料庫字串");
mysql_query("SET NAMES 'UTF8'");
$show_query ="SHOW FULL FIELDS from 資料表";
$show_all = mysql_query($show_query,連結資料庫) or die(mysql_error());

$totalRows_RecAmBo = mysql_num_rows($show_all);

$want_search = stripslashes(rTOT(trim($_POST['q_search_it']))); //rTOT是我的字串處理程式
//這是你想要搜尋的字串, 用表單post進來比較ok

//運用for迴圈
for($i=0;$i<$totalRows_RecAmBo;$i++){

$row_RecAmBo = mysql_result($show_all,$i);
$search_query = "SELECT * from 資料表 where ".$row_RecAmBo." like '%".$want_search."%'";
...
...
...接下來的請自行延伸, 我的狀況還有兩個if和一個do迴圈去控制流程和動作,以符合我的需求.

藉由上述方式, 可以將資料表中的各個欄位取出,變成array中的一員,

然後用for、while迴圈, 重複地搜尋各個欄位中的資料.

在MySQL完全支援中文檢索之前, 暫時就用這個擋著吧!

效能方面, 32個欄位, 10筆資料大概要0.024, 100筆資料將近要0.36, 以此類推...看情形而定.

效能是一大弱點, 但若你的使用者不介意, 或使用情況比較特殊(本地端進存銷系統或會員管理),

倒是可以一試.

ClickComments