分页工作

时间:2014-05-09 07:07:55

标签: php mysql codeigniter pagination

我正在开发基于MVC codeigniter的项目。我当前的设置是这样的,它按照以下查询显示在页面中最多10个表(../ models / mode.php)

 $function getlist($time) 
   {
  $query = $this->db->query('select * from (select job, username,test from jobs  by    time desc  limit 10 ) as a order by time desc');
 .....
 }

查询工作正常,并在页面中显示10个表。虽然数据库有超过10个条目,我想在每个页面中放入10个表并合并分页,这样我就可以看到10个不同页面中的所有100个结果。

在控制器中,我有一块在哪里,我试图使用分页库但没有帮助。

            $this->load->library('pagination');
            $config['base_url']= 'http://localhost/pc/index.php/proj/submit/';
            $config['uri_segment'] =5;
            $config['total_rows']= 100;
            $config['per_page'] = 10;

            $this->pagination->initialize($config);
            echo $this->pagination->create_links();

所有它只是创建链接,但不允许我遍历不同的页面(当然,它将由于控制器不知道它)。我认为限制需要有一个开始和结束值说0,100或开始,完成但我怎么能让控制器知道相同的。有任何反馈/建议吗?我是MVC世界以及php / mysql的新手。

2 个答案:

答案 0 :(得分:0)

您必须处理模型中的分页:

$function getlist($time, $start, $limit) 
{
  $query = $this->db->query('select * from (select job, username,test from jobs  by    time desc  limit 10 ) as a order by time desc limit '. $limit .', '. $start);
 .....
}

在你的控制器中:

// Get pagination page    
$page = ($this->uri->segment(5))? $this->uri->segment(5) : 0;

$data = $this->mode_model->getlist($time, $config["per_page"], $page);

答案 1 :(得分:0)

试试这个

$config['uri_segment'] =3;