【发布时间】:2013-12-30 23:56:14
【问题描述】:
我构建了一个函数来从数据库中获取记录,并尝试使用 foreach 循环打印结果。
这是我的功能:
function get_posts($connection) {
$posts = array();
$sql = "SELECT * FROM posts ORDER BY stamp DESC";
$result = mysqli_query($connection, $sql);
while ($post = mysqli_fetch_object($result)) {
$posts = array('body' => $post->body,
'stamp' => $post->stamp,
'post_id' => $post->id,
'user_id' => $post->user_id);
}
return $posts;
}
现在我正在尝试使用以下代码显示结果:
$posts = get_posts($connection);
foreach ($posts as $key => $value) {
echo $posts['body'] . "<hr>";
}
当使用那段代码时,它只从数据库中返回第一条记录 4 次。我已经使用 var_dump 来确保它确实是一个数组,而且确实如此。我一定是在这里错误地使用了 foreach 循环。
PS: mysqli_fetch_object 可以变成 mysqli_fetch_assoc 吗?我认为使用它可能更容易,但我不知道如何在函数中使用它。任何代码位都值得赞赏。
谢谢!
【问题讨论】:
标签: php mysql loops foreach while-loop