我在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