我在Codeigniter中有以下查询:
$this->db->select('p.productionId, p.name, p.year, p.poster, p.description_nl, p.story_nl, p.castCrew_nl, p.description_en, p.story_en, p.castCrew_en, GROUP_CONCAT(g.galleryId,".",g.name_nl) AS name_nl, GROUP_CONCAT(g.galleryId,".",g.name_en) AS name_en, COUNT("gi.url") AS url')->from('productions p');
$this->db->join('galleries g', 'g.productionId = p.productionId', 'left');
$this->db->join('galleryImages gi', 'gi.galleryId = g.galleryId', 'left');
$this->db->group_by('p.productionId');
$this->db->order_by('p.name', 'ASC');
$this->db->order_by('p.name, gi.galleryId', 'ASC');
$query = $this->db->get();
return $query->result();
它提供的输出是每个g.name_nl和g.name_en是 生产环境 ID的一部分,因此将具有正确ID的那些放在PHP foreach中 .
但是,在同一个foreach中,我想要显示属于同一个库的URL的数量,它与
$this->db->join('galleryImages gi', 'gi.galleryId = g.galleryId', 'left');
代码中的一行 .
这导致的错误是,它列出了所有name_nl和name_en,而不是它的组,而不是多行 .
我该如何纠正?
- 更新 - Foreach
<?php foreach ($productions as $production) { ?>
<h3><?php echo $production->name; ?> (<?php echo $production->year; ?>)</h3>
echo $production->name_nl;
echo $production->url;
} ?>
其结果是:A A A B A.
而不是A B 5