$text = "Mike is registered on Website";
Mike是网站上的注册用户,我希望找到他的名字strpos()
$find = $db->query("SELECT username FROM users");
$finduser = $find->fetch_object();
if(strpos($text, $finduser->username) !== false) {
echo $finduser->username." is a user on Website.";
}
但它没有显示回声Mike is a user on Website.
。
我不知道我是否正确地做了一切。
谢谢。
答案 0 :(得分:0)
要回答您的问题,我假设您想要搜索数据库中的所有用户(如果它在文本(字符串)中)。
因此,您要做的是循环数据库用户的每一行,并检查用户名是否在文本中。方法如下:
while ($finduser = $find->fetch_object()) // Loop all of your database row
{
if(strpos($text, $finduser->username) !== false) {
echo $finduser->username." is a user on Website.";
}
}
您的代码提供的只是检查第一行。这里是php doc http://php.net/manual/en/mysqli-result.fetch-object.php
的链接答案 1 :(得分:0)
您的代码从表中获取第一行。如果有几行,第一行可能不是迈克。 @Hernantas的答案输出所有用户就好了。但是你的问题还有另外两个陷阱。首先,您的代码将匹配用户"网站"而你的字符串是" Mike在网站上注册了#34;。这是不受欢迎的状态,对吧?然后,第二,您应该直接通过SQL请求用户名:
$searched_name = "Mike";
$find = $db->query("SELECT username FROM users
WHERE username='" . mysqli_escape_string($searched_name) . "'");
if ($finduser = $find->fetch_object()) {
echo "{$searched_name} is a user on Website.";
} else {
echo "{$searched_name} is not found.";
}