为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕码人8056858 2021-06-29 13:51:50
我正在寻找一种使用 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
查看完整描述

2 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

无需在代码的第一行给出 '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();

}


查看完整回答
反对 回复 2021-07-02
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

如果您想在一个查询中获取所有统计信息,您可以使用以下代码


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

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

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

但是,如果您想获得特定的状态计数,则必须将状态代码添加到 where 参数中


$this->db->where(['status' => $status]);

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

echo $result->num_rows();

我希望这会帮助你)


private function count_rows($status) {

    $this->db->where(['status' => $status]);

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

}

在您的控制器中


    $data = [

        'pending_approval' => $this->count_rows(4),

        'approved' => $this->count_rows(2),

        'rejected' => $this->count_rows(1)

    ];

    $this->load->view('your_view', $data);

您可以使用<?=$approved?>调用 $data 项


查看完整回答
反对 回复 2021-07-02
  • 2 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信