我建立了利用mysqli
LIKE查詢我的項目執行搜索功能的最大量。mysqli的查詢ORDER BY匹配字符
我的最後一道障礙是在它輸出ORDER
。
目前的情況:
if(isset($_GET['userInput']))
{
$search = $_GET['userInput'];
$search = explode(" ", $search);
if($search[0] != ''){
$firstterm = $search[0];
}else{
$firstterm = '@@@';
}
if($search[1] != ''){
$secondterm = $search[1];
}else{
$secondterm = '@@@';
}}
$contact = $mysqli->query("
SELECT * FROM contact WHERE
f_name LIKE '%$firstterm%'
OR l_name LIKE '%$firstterm%'
OR f_name LIKE '%$secondterm%'
OR l_name LIKE '%$secondterm%'
order by id LIMIT 5");
我的問題是,有沒有被作爲並列於id
匹配字符的最大量的方式來ORDER
。原因是如果我輸入'C Blogs'尋找'Craig Blogs','C'將因爲電子郵件地址而註冊到我的聯繫人的每個人。'[c] om'。
因此,如果我可以通過大部分匹配字符來獲取它(在兩個以上的爆炸中增加的量),理論上最高結果應該是'Craig Blogs'。
我建議你在PHP中使用'levenshtein'函數來比較搜索項。 – Barmar
@Barmar感謝您的建議,我會着眼於此。如果你能指出我正在使用它作爲一個例子,將不勝感激。 – Bjaeg
不知道在哪裏可以找到示例。這就是搜索引擎的目的。基本上,你只是想使用'usort',並寫一個比較函數來比較levenshtein($ a)和'levenshtein($ b)'。 – Barmar