我在我的mvc模型中有一個過濾器,它從搜索字段獲取一個變量。它搜索標題等等,但搜索結果很差。這可能是一個簡單的語法問題,但我看不到它搜索。使用通配符改進mysql搜索結果。 Joomla 3.3
我有一些項目名稱,如:
「莫羅·伯拉尼克Carolyne金色亮粉的露跟泵(35.5,黃金)」 或 「貝達弗Trialmaster夾克」
目前,如果你搜索「的Manolo Blahnik的鞋「或」belstaff夾克「,你不會得到任何結果。我如何在字符串的任何部分匹配任何單詞?
我已經嘗試在變量的任一側添加%,比如%'。$ keyword。'%,但這不起作用。
//Filtering search field
$jinput = JFactory::getApplication()->input;
$keyword = $jinput->get('keyword', '', 'NULL');
if($keyword!=''){
$keyword = $db->Quote('%' . $db->escape($keyword, true) . '%');
$query->where('(a.title LIKE '.$keyword.' OR a.features LIKE '.$keyword.' OR a.brand LIKE '.$keyword.')');
}
你期望什麼?標題是否應包含所有單詞或至少一個單詞。例如,你的manolo例子在搜索中有鞋子,但有manolo和blahnik。還有,它必須讓所有的單詞都符合單詞的順序嗎? – melvin
沒有順序無關緊要,它應該匹配字符串中至少有一個單詞的地方。 – larpo