在php中使用foreach循环我试图从数据库中检索数据。我们的想法是使用foreach循环从数据库中显示数据,例如标题,以便将数据转换为对象/ div。
我使用mysql查询来获取数据:
$db = new mysqli('localhost', 'username', 'password', 'database');
$postQuery = $db->query("
SELECT
posts.id,
posts.title
FROM posts
GROUP BY posts.id
");
while($row = $postQuery->fetch_object()){
$posts[] = $row;
}
然后我使用foreach循环显示数据:
<?php foreach($posts as $post): ?>
<div><?php echo $post->title; ?>
etc.
</div>
<?php endforeach; ?>
一切似乎都有效,除非我尝试在mysql查询中使用posts.id来检查数据库中表的内容以及相应的posts.id。有没有办法检索id以在查询或php函数中使用它?
答案 0 :(得分:2)
在php中,您可以在foreach循环中引用id $post->id
(遵循编码约定),或在foreach循环之外引用$posts[x]->id
,其中x是$中元素的索引发布数组。
但是,在sql中,您可以在某些字段上连接表,因此您不必检索posts.id列,只是为了将这些ID作为sql请求的一部分发回。有关详细信息,请参阅joins上的mysql文档。
您应该从查询中删除group by posts.id
,这是多余的。