根据帖子数量获得用户排名(Codeigniter)

根据帖子数量获得用户排名(Codeigniter),codeigniter,Codeigniter,我有许多用户正在将内容发布到POSTS表 id user_id content 1 1 text 2 3 text 3 1 text 4 1 text 5 2 text 6 3 text 现在,我想通过最高职位(行)获得单个用户排名。我对如何得到结果感到困惑 如果您正在使用查询生成器,则可以从模型中使用以下语句来获得所需的

我有许多用户正在将内容发布到POSTS表

id     user_id     content

1        1       text
2        3       text
3        1       text
4        1       text
5        2       text
6        3       text

现在,我想通过最高职位(行)获得单个用户排名。我对如何得到结果感到困惑

如果您正在使用查询生成器,则可以从模型中使用以下语句来获得所需的结果:

$this->db->select('user_id, count(content) as total_posts')
    ->group_by('user_id')
    ->order_by('total_posts', 'DESC')
    ->limit(1)
    ->get('POSTS')
    ->row();

这个问题已经解决了。以下是我如何做到这一点的解释:

模型

控制器

$data['user_ranking'] = $this->post_model->get_user_ranking();
看法


如何显示这些记录?我们可以看到你关于这个的查询吗?你说的最高是什么意思?获取错误:这是我的类get_user_ranking($user_id)公共函数get_user_ranking($this->db->select($user_id,count(id)as total_posts')->group_by('user_id')->order_by('total_posts',DESC limit(1)->get('posts')->row(); }
$data['user_ranking'] = $this->post_model->get_user_ranking();
$rank = 1; foreach($user_ranking as $row)
{
    if( $row->user_id == $user->id)
    {
        echo $rank;
        break;
    } 
    $rank++;
}
public function get_user_ranking()
{   

    $this->db->select('user_id, count(id) as total_postings');
    $this->db->from('posts');
    $this->db->group_by('user_id');
    $this->db->order_by('total_posts', 'DESC');
    return $this->db->get()->result();
}