我的数据库中有一个表ANKETADATA
,其中包含一列PROVO
。我希望得到这样的输出:
povremeno : 15
。 (数字显示在PRVO列中发现此行的次数)
nikad : 40
。
MODEL:
$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。我找不到错误。
答案 0 :(得分:0)
摆脱这个:
$anketadb->group_by('prvo');
你的foreach:
foreach($result as $row){
$val = $row['prvo'];
$count[$val]++;
}
答案 1 :(得分:0)
使用这样的SQL查询执行此操作会不会更快:
SELECT COUNT(*) as `count`, `prvo` FROM `anketadata` GROUP BY `prvo`