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:

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