0

我的数据库中有一个表ANKETADATA,其中包含一个列PROVO。我想要这样的输出:

povremeno : 15. (数字显示在 PRVO 列中找到该行的次数) nikad : 40

模型:

$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。我找不到错误。

4

2 回答 2

0

使用这样的 SQL 查询执行此操作会不会更快:

SELECT COUNT(*) as `count`, `prvo` FROM `anketadata` GROUP BY `prvo`
于 2012-10-18T13:50:35.043 回答
0

摆脱这个:

$anketadb->group_by('prvo');

你的前锋:

foreach($result as $row){
   $val = $row['prvo'];
   $count[$val]++;
}
于 2012-10-18T13:27:07.073 回答