我正在尝试执行一个语句,它会显示我表中每一行的所有结果,但它所做的只是显示最后一行的结果。
<?php
require_once('php/dbconfig.php');
$stmt = $DB_con->prepare("SELECT * FROM users");
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
$name = array($row['user_name']);
$email = array($row['user_email']);
}
echo $name[0];
?>
这会有效,但它只会显示我表格中最后一个人的名字。如果我尝试用任何其他数字替换0,则不会显示任何内容。
我希望能够在列表中显示所有用户和电子邮件。
答案 0 :(得分:1)
在以下块中,您将每个名称分配给变量$name
。
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
$name = array($row['user_name']);
$email = array($row['user_email']);
}
我认为您打算通过将回显添加到循环中来回显$name
循环的每次迭代:
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
$name = $row['user_name'];
$email = $row['user_email'];
echo "{$name} - {$email}";
}
或通过将分配从$name
更改为$name[]
来将其添加到名称数组中,这意味着$name
数组的下一个索引&#39;。< / p>
Fetch还会返回一条记录,因此您需要循环结果或更改为fetchAll,如其他答案所示。