Php 分组方式和计数在codeigniter中计数不正确

Php 分组方式和计数在codeigniter中计数不正确,php,mysql,codeigniter,Php,Mysql,Codeigniter,我无法显示正确的计数数(字段)。我正在尝试按字段分组,并希望按组返回订单并计数 控制器是 $this->load->library('pagination'); $query = "SELECT usercode,count(usercode) AS co FROM tabs GROUP BY usercode ORDER BY co desc"; $config['total_rows'] = $this->db->query($qu

我无法显示正确的计数数(字段)。我正在尝试按字段分组,并希望按组返回订单并计数

控制器是

    $this->load->library('pagination');

    $query = "SELECT usercode,count(usercode) AS co FROM tabs
    GROUP BY usercode ORDER BY co desc";

    $config['total_rows'] = $this->db->query($query)->num_rows();
    $config['num_links'] = '25';
    $config['uri_segment'] = 3;
    $config['base_url'] = base_url() . "/user/topCreators/";
    $config['per_page'] = '25';
    $config['anchor_class'] = " class=\"number\" ";
    $config['cur_tag_open'] = "<a href=\"#\" class=\"number 
    current\" title=\"Current Page\">";
    $config['cur_tag_close'] = "</a>";

    $this->pagination->initialize($config);
    if ($this->uri->segment(3) == FALSE){
        $offset = 0;
    }
    else
    {
        $offset = $this->uri->segment(4);
    }

    $limit = $config['per_page'];
    $data["total_records"] = $config['total_rows'];
    $data["page_links"] = $config["per_page"];


    $data["query"] = $this->db->query($query . " LIMIT $limit OFFSET $offset");

    $this->load->view("top_creators", $data);
$this->load->library('pagination');
$query=“从选项卡中选择用户代码,将(用户代码)计数为co
按用户代码分组按co desc排序”;
$config['total_rows']=$this->db->query($query)->num_rows();
$config['num_links']='25';
$config['uri_段]]=3;
$config['base\u url']=base\u url()。“/user/topCreators/”;
$config['per_page']='25';
$config['anchor\u class']=“class=”number\”;
$config['cur_tag_open']=“”;
$this->pagination->initialize($config);
如果($this->uri->segment(3)=FALSE){
$offset=0;
}
其他的
{
$offset=$this->uri->segment(4);
}
$limit=$config['每页'];
$data[“总计记录”]=$config[“总计行”];
$data[“页面链接”]=$config[“每页”];
$data[“query”]=$this->db->query($query.“LIMIT$LIMIT OFFSET$OFFSET”);
$this->load->view(“顶级创建者”,$data);
我的视图文件是

   <?php foreach($query->result() as $me) {?>
   <?= $me->co?>  

   <?php }?>


co
对于每个结果都是相同的数字,因为您正在统计表选项卡中的所有用户代码,因此您的排序将不起作用。它还使执行
$this->db->query($query)->num_rows()变得多余
因为它的值与
co

相同,所以您应该更详细地解释什么在您的案例中不起作用


在我看来,处理分页的最佳实践是使用

基本上,这允许您运行一个查询并通过

// Main query with SQL_CALC_FOUND_ROWS

$row = $this->db->query("SELECT FOUND_ROWS() AS found")->row();
$config['total_rows'] = $row->found;

SQL\u CALC\u FOUND\u行统计所有行,但仅返回限制范围内的行。这样可以减少对系统的查询(减少延迟),并始终给出正确的总行数,因为您从同一查询中获得了值。

我已输入换行符,以便在stackoverflow上显示良好的sql。排序工作正常,但计数不正常,它为每条记录给出了错误的数字,它只是多计算了几条记录,而不是原始记录,它没有正确返回$row->co值,例如,它只返回127,应该是19。计算不好。