我想在facebook中制作“Search your LOGIN”:
EG。搜索“Stock Overflow”将返回
Stack Overflow
SharePoint Overflow
Math Overflow
Politic Overflow
VFX Overflow
EG。搜索“LO”将返回:
pabLO picasso
michelangeLO
jackson polLOck
EG。搜索用户名“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,只是为了我更容易做的例子..
答案 0 :(得分:2)
试试这个
$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
}
答案 1 :(得分:0)
使用此
更改您的查询$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
答案 2 :(得分:0)
试试这个
$query = "SELECT * FROM users WHERE user_fname like '%".$string."%' OR user_lname like '%".$string."%' OR username like '%".$string."%' OR useremail like '%".$string."'%";
答案 3 :(得分:0)
试试这种方式
$query = "SELECT * FROM users WHERE user_fname LIKE '%".$string."%' OR user_lname = '%".$string."%' OR username = '%".$string."%' OR useremail= '%".$string."%'";
的信息
注意强>
答案 4 :(得分:0)
试试这个:
$query = "SELECT * FROM users
WHERE user_fname LIKE '%$string%'
OR user_lname LIKE '%$string%'
OR username LIKE '%$string%'
OR useremail LIKE '%$string%'";