我遇到了一个我觉得原则上有点简单的问题,所以我可能不会以正确的方式解决这个问题。我本质上是在页面上列出具有各自“评论”的“事件”。我加入了两个表,并希望运行一个 foreach 循环来获取所有事件及其评论。不幸的是,如果一个事件有多个评论,它会因为加入而重新打印原始事件(我怀疑)。有什么更好的方法来实现我想要完成的目标?
在我的模型中:
function get_events()
{
$this->db->select('*');
$this->db->from('events');
$this->db->join('comments', 'comments.event_id = events.id', 'left');
$query = $this->db->get();
if ($query->num_rows() > 0)
{
return $query->result();
}
}
在视图中:
<?php foreach($events as $row): ?>
<div class="event">
<?= $row->event; ?>
<?php if($row->comment == null): ?><br>
<i>No comments.</i>
<?php else: ?>
<div class="comment">
<?= $row->comment; ?>
</div>
<?php endif; ?>
</div>
<?php endforeach; ?>
在数据库中,我基本上有 3 个事件,一个有 2 个评论,一个只有 1 个评论,一个有零评论。第一个事件打印两次,每个都有不同的评论,第二个事件打印很好,有自己的评论,第三个工作完美,打印“无评论”,因为没有任何东西加入。
希望这一切都有意义!
公吨