【发布时间】:2021-08-14 18:55:54
【问题描述】:
我正在尝试将准备好的语句的结果显示到表格中。
这是查询和尝试的表:
<?php
$s = "SELECT username,fullname,email,userlevel FROM users";
$sth = $dbc->prepare($s, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute();
echo "<div><table class="demoTable">";
echo "<thead><tr>" .
"<th>Username</th>" .
"<th>Fullname</th>" .
"<th>Email</th>" .
"<th>Userlevel</th>" .
"</tr></thead>";
echo "<tbody>";
while($Row = $sth->fetchAll(PDO::FETCH_ASSOC)) {
echo "<tr><td>".$Row['username']."</td>";
echo "<td>".$Row['fullname']."</td>";
echo "<td>".$Row['email']."</td>";
echo "<td>".$Row['userlevel']."</td>";
echo "</tr></tbody>";
}
echo "</table></div>";
?>
使用上述内容,我没有在屏幕上显示任何内容。
当我使用以下内容时:
print_r($Row);
我可以在数组中看到如下所示的结果:
Array (
[0] => Array ( [username] => usr.sname [fullname] => Some Name [email] => some.name@company.com [userlevel] => 9 )
[1] => Array ( [username] => usr.aname [fullname] => Another Name [email] => another.name@company.com [userlevel] => 1 )
[2] => Array ( [username] => usr.fname [fullname] => Final Name [email] => final.name@company.com [userlevel] => 1 ) // a few more
所以,查询工作正常。我就是无法让数据显示在表格中。
我怎样才能做到这一点?
【问题讨论】:
-
可能是
... while($Row = $sth->fetch(PDO::FETCH_ASSOC)) {...(不是fetchAll。如果你想使用fetchAll(),你需要一个额外的for循环。 -
顾名思义,
fetchAll一次获取所有数据。你的代码应该给你未定义的索引通知。而你的print_r揭示了结构。或者,您甚至可以直接foreach执行的语句。