如何根据codeigniter中的特定值显示行数

我正在寻找一种使用 CodeIgniter 根据特定列数据显示行数的解决方案。


这基本上是用于商店注册项目。我有一个shopowner名为status. 而这一status列只有 3 个值。IE。如果状态是,0则记录正在等待批准,一旦批准,状态将变为1和2拒绝。现在在我的仪表板中,我需要显示待处理、已批准和已拒绝记录的总数。任何人都可以帮我解决这个问题,请告诉我要在模型、控制器和视图中添加什么。我对 CodeIgniter 完全陌生。提前致谢。


模型

public function count_rows($status)

    {

        $this->db->select('status, COUNT(status) as total');

        $this->db->group_by('status', $status);  

        $this->db->get('shopowner');

    }


预期的输出会像


注册总数:4 待批准:2 已批准:1 已拒绝:1


慕码人8056858
浏览 114回答 2
2回答

犯罪嫌疑人X

无需在代码的第一行给出 'status' 列,只需使用 '$this->db->select('COUNT(*) as total');' 在第一行并使用带有状态列的 where 子句而不是在“group_by”子句中使用的“status”列。你可以试试下面的代码:public function count_rows($status){    $this->db->select('COUNT(*) as total');    $this->db->from('shopowner');    $this->db->where('status', $status);    $this->db->group_by('status');      $this->db->get();}

陪伴而非守候

如果您想在一个查询中获取所有统计信息,您可以使用以下代码&nbsp;$this->db->select('status, COUNT(status) as total');&nbsp;$this->db->group_by('status');&nbsp;&nbsp;&nbsp;$this->db->get('shopowner');但是,如果您想获得特定的状态计数,则必须将状态代码添加到 where 参数中$this->db->where(['status' => $status]);$result = $this->db->get('shopowner');echo $result->num_rows();我希望这会帮助你)private function count_rows($status) {&nbsp; &nbsp; $this->db->where(['status' => $status]);&nbsp; &nbsp; return $this->db->get('shopowner')->num_rows();}在您的控制器中&nbsp; &nbsp; $data = [&nbsp; &nbsp; &nbsp; &nbsp; 'pending_approval' => $this->count_rows(4),&nbsp; &nbsp; &nbsp; &nbsp; 'approved' => $this->count_rows(2),&nbsp; &nbsp; &nbsp; &nbsp; 'rejected' => $this->count_rows(1)&nbsp; &nbsp; ];&nbsp; &nbsp; $this->load->view('your_view', $data);您可以使用<?=$approved?>调用 $data 项
打开App,查看更多内容
随时随地看视频慕课网APP