【发布时间】:2020-10-18 14:13:47
【问题描述】:
当我在 PHPMyAdmin 中运行以下查询时,它返回了正确数量的结果。但是,当我尝试在 PHP 中回显结果时,它只输出一个结果,即使有多个结果也是如此。如何解决此问题以便显示每个结果?
$sql1 = "SELECT userFirstname FROM users WHERE userID IN (SELECT userID FROM note_editors WHERE noteID = (SELECT noteID FROM notes WHERE uniqueID = ?))";
$stmt1 = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt1, $sql1)) {
header("Location: note-premium.php?error=sql");
exit();
}
else {
mysqli_stmt_bind_param($stmt1, "s", $unique);
mysqli_stmt_execute($stmt1);
$result1 = mysqli_stmt_get_result($stmt1);
while ($row1 = mysqli_fetch_assoc($result1)) {
$names = $row1['userFirstname'];
}
}
echo($names);
第二次尝试:我尝试创建一个数组。但这只是输出单词数组和错误消息“注意:数组到字符串的转换”。为什么?
$sql1 = "SELECT userFirstname FROM users WHERE userID IN (SELECT userID FROM note_editors WHERE noteID = (SELECT noteID FROM notes WHERE uniqueID = ?))";
$stmt1 = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt1, $sql1)) {
header("Location: note-premium.php?error=sql");
exit();
}
else {
mysqli_stmt_bind_param($stmt1, "s", $unique);
mysqli_stmt_execute($stmt1);
$result1 = mysqli_stmt_get_result($stmt1);
$column = array();
while ($row1 = mysqli_fetch_assoc($result1)) {
$column[] = $row1['userFirstname'];
}
}
echo($column);
【问题讨论】:
-
你每次都覆盖
$names- 你需要建立一个值数组 -
使用
mysqli_fetch_array($result1) -
@will_kelly14 不是
echo($column);print_r($column); -
@will_kelly14 你不知道
Notice: Array to string conversion是什么意思。