【问题标题】:How to calculate group_concat in codeigniter如何在codeigniter中计算group_concat
【发布时间】:2019-04-13 18:30:07
【问题描述】:

我想 groupconcat 产品名称..但它在我的视图页面中显示未定义的索引产品名称..我不知道我在哪里犯了错误..请帮助我 groupconcat 产品名称..

控制器代码:

$this->db->select('GROUP_CONCAT(prdtname)', false);
$this->db->from('purchaseitem');
$this->db->group_by('vno');
$query1=$this->db->get()->row_array();
$data['query1']= $query1;

我在本地主机上的 sql 中尝试了 groupconcat,它给了我预期的结果..但我不知道在转换为 codeigniter 时我在哪里做错了..请帮我解决这个问题..

【问题讨论】:

  • 你试过这个吗? $this->db->select(GROUP_CONCAT(prdtname SEPARATOR ","), false);
  • 您可能会遇到 CI 或 MySQL 在如何构建查询方面更严格的情况。例如,如果您的数据库服务器处于严格模式,则可能是这样的情况:1. Group concat 要求它不是 select 中的唯一字段(尝试 select vno, group_contact ....)并且 2. Group by 必须是存在于 select 子句中的字段(在非严格模式下,您可以按子句中未明确显示的内容进行分组,但在严格模式下则不能)
  • 是的先生..我知道我的错误..感谢您的回复..:)
  • 另外,尝试给群组联系人生成的字段起一个别名...这样以后处理起来更容易。试试group_concat(prdtname) as alias,这样你就可以更轻松地使用结果了
  • 是的先生..试过这个并得到了答案..谢谢您的回复

标签: php mysql codeigniter group-concat


【解决方案1】:

控制器代码:

$this->db->select('GROUP_CONCAT(prdtname)as itemname',false);
$this->db->from('purchaseitem');
$this->db->group_by('vno');

查看页面:

<td><?=$row['itemname'];?></td>

【讨论】:

    猜你喜欢
    • 2013-11-21
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 2019-07-23
    • 1970-01-01
    • 2014-08-02
    • 1970-01-01
    • 2019-06-07
    相关资源
    最近更新 更多