如何在字符串中输出用户名foreach值?

时间:2018-12-02 17:07:21

标签: php arrays mysqli

我似乎无法获得为每个值输出$ username的代码。有任何想法吗?请记住,字符串的长度可以是无限的,而不仅仅是4个条目。如果可能的话,还需要一种方法来查找字符串中的条目数?

PHP版本:7.2

$string = '649374658494, 74658397464, 746384946354, 8659584748';
$var = explode(',', $string);
$nvalue = "";
foreach ($var as &$value) {
    $sql = "SELECT * FROM users WHERE id='$value'";
    $result = $connect->query($sql);
    if ($result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            $username = $row["username"];
        }
    }
    $nvalue .= '<p>' . $username . '</p>';
}

2 个答案:

答案 0 :(得分:0)

您在这里缺少回声部分。 另外,每次迭代中的$ value都将有尾随空格,trim可以帮助减少多余的空格。

$string = '649374658494, 74658397464, 746384946354, 8659584748';
$var = explode(',', $string);
$nvalue = "";
foreach ($var as &$value) {
    $sql = "SELECT * FROM users WHERE id='".trim($value)."'";
    $result = $connect->query($sql);
    if ($result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            $username = $row["username"];
            $nvalue .= '<p>' . $username . '</p>';
        }
    }

}
echo $nvalue;

答案 1 :(得分:-1)

这是因为变量$ username在为其分配了值的if语句之外,因此采用默认值。尝试把这句话     $nvalue .= '<p>' . $username . '</p>'; 之后立马     $ username = $ row [“ username”]; 然后在if语句外回显$ nvalue,即在完成连接值之后。