我似乎无法获得为每个值输出$ 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>';
}
答案 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,即在完成连接值之后。