我想让"搜索你的登录"像在facebook:中一样
例如。搜索"库存溢出"将返回
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."'%";
尝试这种方式
$query = "SELECT * FROM users WHERE user_fname LIKE '%".$string."%' OR user_lname = '%".$string."%' OR username = '%".$string."%' OR useremail= '%".$string."%'";
获取类似关键字的信息
注意
- 请避开mysql_。。。使用mysqli_或PDO
使用此更改查询
$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%'";