[英]How to find similar results from all rows in DB with MySQL query
我想在facebook中制作“Search your LOGIN”:
例如。 搜索“股票溢出”將返回
Stack Overflow
SharePoint Overflow
Math Overflow
Politic Overflow
VFX Overflow
例如。 搜索“LO”將返回:
pabLO picasso
michelangeLO
jackson polLOck
例如。 搜索用戶名“user123”將返回:
user123
user1234
and etc ...
我的數據庫行:
userid | username | useremail | user_fname | user_lname
我想做一個搜索輸入,搜索上面任何一行中的單詞,如上例所示,
這里我的PHP到現在為止:
$string = $purifier->purify(@$_POST['string']);
$query = "SELECT * FROM users WHERE user_fname = '".$string."' OR user_lname = '".$string."' OR username = '".$string."' OR useremail= '".$string."'";
mysql_query("SET NAMES 'utf8'");
$result2 = mysql_query($query);
$num = mysql_num_rows($result2);
if($num == 1)
{
//true
}else{
//not found nothing
}
這種方式效果不好,並沒有返回我在搜索輸入中輸入的所有類似的重復。 如果有超過1個類似的結果,我如何用foreach返回它?
謝謝分配。
更新:
謝謝大家,我的更新代碼來修復它:
$query = "SELECT * FROM users WHERE user_fname like '%".$string."%' OR user_lname like '%".$string."%' OR username like '%".$string."%' OR useremail like '%".$string."%'";
我沒有使用mysql,只是為了我更容易做到這樣的例子..
嘗試這個
$string = $purifier->purify(@$_POST['string']);
$query = "SELECT * FROM users WHERE user_fname like '%".$string."%' OR user_lname like '%".$string."%' OR username like '%".$string."%' OR useremail like '%".$string."%'";
mysql_query("SET NAMES 'utf8'");
$result2 = mysql_query($query);
$num = mysql_num_rows($result2);
if($num == 1)
{
//true
}else{
//not found nothing
}
用此更改您的查詢
$query = "SELECT * FROM users WHERE user_fname LIKE '".$string."%' OR user_lname LIKE '".$string."%' OR username LIKE '".$string."%' OR useremail LIKE '".$string."%'";
注意:
如果您有user123
關鍵字並且想要搜索具有數據user123*
所有行,則可以應用通配符$string%
如果是*user123*
你可以使用%$string%
如果是*user123
您可以使用%$string
嘗試這個
$query = "SELECT * FROM users WHERE user_fname like '%".$string."%' OR user_lname like '%".$string."%' OR username like '%".$string."%' OR useremail like '%".$string."'%";
試試這種方式
$query = "SELECT * FROM users WHERE user_fname LIKE '%".$string."%' OR user_lname = '%".$string."%' OR username = '%".$string."%' OR useremail= '%".$string."%'";
注意
嘗試這個:
$query = "SELECT * FROM users
WHERE user_fname LIKE '%$string%'
OR user_lname LIKE '%$string%'
OR username LIKE '%$string%'
OR useremail LIKE '%$string%'";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.