如何从php foreach循环中获取每个对象的id?

时间:2016-01-13 15:47:20

标签: php mysql foreach

在php中使用foreach循环我试图从数据库中检索数据。我们的想法是使用foreach循环从数据库中显示数据,例如标题,以便将数据转换为对象/ div。

以下是示例: result example

这是数据库(database-> posts): database example

我使用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函数中使用它?

1 个答案:

答案 0 :(得分:2)

在php中,您可以在foreach循环中引用id $post->id(遵循编码约定),或在foreach循环之外引用$posts[x]->id,其中x是$中元素的索引发布数组。

但是,在sql中,您可以在某些字段上连接表,因此您不必检索posts.id列,只是为了将这些ID作为sql请求的一部分发回。有关详细信息,请参阅joins上的mysql文档。

您应该从查询中删除group by posts.id,这是多余的。