『壹』 php 熱詞搜索功能怎麼做
你的項目大不大?不大的話就給每條數據加幾個關鍵詞,然後根據關鍵詞搜索
大的話你就可以考慮使用搜索引擎了,coreseek,sphnix,都可以的,也可以借用google/站內搜索,完w3cshooll就是借用google的
『貳』 PHP實現搜索查詢功能的方法技巧
下面是首頁顯示數據表package中的內容,但是有個條件,顯示在首頁的內容還必須是 :欄位status=0,且printing=0的數據才能在首頁列表中顯示出來。
頁面上有一個“搜索”功能,輸入條件後就會根據條件來進行查詢。
一般的搜索的話,只要在首頁顯示列表方法index()中給一個:
?
$map=array();//初始化查詢條件
$map=$this->_search();//調用查詢方法
$total = $this->Model->where ($map)->count(); //這個主要是用來計算頁面顯示數據條數的
if ($total == 0) {
$_list = '';
} else {
$_list = $this->Model->where ($map)->limit( $post_data ['first'] . ',' . $post_data ['rows'] )->select();
}
然後,就是寫一個_search():
protected function _search(){
$map = array ();
$post_data = I ( 'post.' );
if ($post_data ['packageid'] != '') {
$map ['packageid'] = array (
'like',
'%' . $post_data ['packageid'] . '%'
);
}
return $map;
}
最後,在設置的“搜索”菜單中,調用這個搜索方法。
但是,這個搜索的.同時,還要確保在欄位status=0,且printing=0的數據中進行搜索。
這個限制條件該加在什麼地方。各種嘗試和查詢後,才知道。限制條件直接加在SQL語句中就行了(如下紅色的地方)。(我自己試的時候一直在如下藍色的地方加條件,屢試屢敗!)
$map=array();
$map=$this->_search();
$total = $this->Model->where ($map)->where(array('status' =>0,'print_status'=>0))->count();
if ($total == 0) {
$_list = '';
} else {
$_list = $this->Model->where ($map)->where(array('status' =>0,'print_status'=>0))->limit( $post_data ['first'] . ',' . $post_data ['rows'] )->select();
}
『叄』 php站內搜索怎麼做
站內搜索是一種使用關鍵字來搜索文章標題的功能。
PHP的站內搜索可以使用SELECT和LIKE語句來對文章的標題進行過濾選擇,將需要的數據篩選出來。 如果有多個篩選可以使用AND語句連接起來進行多條語句篩選。 如果希望是能搜索到全站所有的數據,一般在資料庫設計之初最好就是把所有數據放一個表,然後通過擴展表的方式進行數據擴展!具體方法可以參考ONETHINK的設計模式。
具體搜索方法: SELECT * FROM 表名 WHERE 欄位 LIKE '%關鍵字%'