我製作了一個搜索框功能,可以讓我鍵入一個單詞,然後在我的數據庫中找到該單詞的任何匹配項。但是,它只能找到確切的匹配。我正在尋找如何使搜索更好的建議。PHP,MySQL:進行更好的搜索?
以下代碼是我當前用於搜索數據庫的用戶可能匹配用戶搜索的數據。
$search_keys = array('fname', 'lname', 'email');
foreach ($search_keys as $key)
{
$result = mysql_query("SELECT id FROM users WHERE " . $key . " LIKE " . "\"{$str}\"") or die(mysql_error());
while ($row = mysql_fetch_array($result))
{
// Get the User
$tmp_user = new User();
$tmp_user->getUserById($row['id']);
// Add User to list of potential candidates
array_push($users, $tmp_user);
}
}
請記住,使用'LIKE'方法會忽略索引,並根據您的數據子集進行搜索抓取 – Jakub 2011-05-04 15:11:56
不完全正確。如果搜索項完全被包圍,它只會忽略索引,但如果它只以%結尾 - 例如'Jam%',它將使用索引。資料來源:http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html – 2011-05-04 15:14:25