【问题标题】:How to convert this sql code to Codigniter ActiveRecord [closed]如何将此 sql 代码转换为 Codeigniter ActiveRecord [关闭]
【发布时间】:2012-10-18 11:17:29
【问题描述】:

我在 PRVO 表中有一行包含四种类型的值:第一、第二、第三、第四

我想计算第一次出现的次数、第二次出现的次数、第三次出现的次数和第四次的出现次数,并像这样回应:

First = 4
Second = 5
.....

我有以下代码:

$anketadb->select('prvo');
$anketadb->from('anketadata');
$anketadb->group_by('prvo');

如何添加计数以获得我上面写的结果? 提前致谢

更新:

现在我的情况是: 型号:

$anketadb = $this->load->database('anketa',TRUE);

    $anketadb->select('prvo');
    $anketadb->from('anketadata');
    $anketadb->group_by('prvo');
$result =   $anketadb->get();

$result =   $result->result_array();

$count  =   array('povremeno' => 0, 'nikad' => 0, 'svakibroj' => 0, 'prodajemkupujem' => 0);

foreach($result as $row){
    switch($row){
        case 'povremeno' :  $count['povremeno']++; break;
        case 'nikad' : $count['nikad']++; break;
        case 'svakibroj' :  $count['svakibroj']++; break;
        case 'prodajemkupujem' : $count['prodajemkupujem']++; break;
    }
}
return $count;

控制器:

$this->load->model('anketerezultati_model');
    $data['count'] = $this->anketerezultati_model->prvo();
    $this->load->view('ankete/rezultatiankete', $data);

查看:

echo "povremeno".$count['povremeno'];
echo "nikad".$count['nikad'];

结果都是 0...我找不到错误。

【问题讨论】:

    标签: sql codeigniter activerecord


    【解决方案1】:

    希望你需要这个:

    $this->db->select('*');
    $this->db->from('anketadata');
    $this->db->group_by('prvo');
    $result =   $this->db->get();
    
    //Result set
    $result =   $result->result_array();
    

    更新

    $count  =   array('first' => 0, 'second' => 0, 'third' => 0, 'fourth' => 0);
    
    foreach($result as $row){
    
        switch($row['<fieldName>']){
    
            case 'first' :  $count['first']++; break;
            case 'second' : $count['second']++; break;
            case 'third' :  $count['third']++; break;
            case 'fourth' : $count['fourth']++; break;
        }
    }
    

    最后,您在 $count 数组中出现了 first.second....。使用出现次数$count['first'] 第二个$count['second '].....

    【讨论】:

    • 这是一个很好的解决方案,但我需要列出 GROUP BY 所在的行。比它起作用了!
    【解决方案2】:

    编辑

    $this->db->select('prvo');
    $this->db->from('anketadata');
    $this->db->group_by('prvo');
    $query = $this->db->count_all_results();
    
    return $query;
    

    【讨论】:

    • 重点是我拥有的表格和一个列:列名:PRVO 值我输入的内容:第一、第二、第三、第四。我想共同计算我从第一列,第二列,第三列和第四列有多少。现在你明白我的问题了吗?
    • 尝试 MR Srinivas 解决方案
    • 我从 MR 那里找到了解决方案。稍作改动,看他帖子的评论。
    猜你喜欢
    • 2018-05-06
    • 1970-01-01
    • 2018-08-22
    • 2013-06-28
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    相关资源
    最近更新 更多