用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2383|回复: 3
收起左侧

[已解决] 我这个分页写的有什么问题么?怎么就不行呢!!!

[复制链接]
发表于 2012-5-28 16:55:18 | 显示全部楼层 |阅读模式
本帖最后由 tlerbao 于 2012-5-28 17:58 编辑

控制器里面

PHP复制代码
 
                function newslist()
                {
                        $classid = $this->uri->segment(3);
                        $total_rows = $this->news_mdl->get_news_num($classid);
                       
                        //分页开始
                        $this->load->library('pagination');        //载入分也类
                        $config['base_url'] = site_url('news/newslist/'.$classid);
                        $config['total_rows'] = $total_rows; //记录总数
                        $config['per_page'] = 3; //每页数
                        $config['uri_segment'] = 4;
                        $config['use_page_numbers'] = TRUE;
                        $config['first_link'] = '首页';
                        $config['last_link'] = '末页';
                        $config['next_link'] = '下一页';
                        $config['prev_link'] = '上一页';
                        $this->pagination->initialize($config); //初始化分页
                       
                        $data['newsnav'] = $this->news_mdl->get_newsnav();
                        $data['newslist'] = $this->news_mdl->get_news_list($classid,$this->uri->segment(4,0),$config['per_page']);
                       
                        $this->load->view('news/list',$data);                        
                }
 
 
复制代码


模型里面

PHP复制代码
 
                function get_news_num($classid) //获取栏目新闻总数
                {
                        $query = $this->db->where('news_class',$classid)->get('dili_u_m_news');
                        return $query->num_rows();
                }
 
                function get_news_list($classid,$offset,$limit) //获取新闻列表分页
                {
                        $query = $this->db->where('news_class',$classid)->order_by('id','DESC')->limit($offset,$limit)->get('dili_u_m_news');
                        return $query->result();
                }
 
 
复制代码

 楼主| 发表于 2012-5-28 17:10:52 | 显示全部楼层
已经解决
$this->db->limit();
方法和原声sql的limit生成的结果是反的
limit(10,20)会变成limit(20,10)
发表于 2012-5-29 09:57:21 | 显示全部楼层
解决分页问题,最重要的要注意三个地方:第一个地方就是取出符合结果集的条数,用到sql1;第二个地方就是取出符合结果的信息,用到sql2,第三个地方就是分页的调转地址$url;在调式的时候一定要及时的把$sql1和$sql2和$url及时的输出,就能很方便的看出错误了。
发表于 2012-6-1 11:25:00 | 显示全部楼层
支持藤椅的见解!

本版积分规则