更改Codeigniter中分页的URL/URI

更改Codeigniter中分页的URL/URI,codeigniter,Codeigniter,我正在使用Codeigniter中的分页类从数据库中分页出一些信息 这一切都很完美,但是,我正在尝试整理人们用来访问页面的URL 目前,我正在从URL中提取偏移量,并将其设置为每页20个结果: http://www.mysite.com/page/20 因此,如果您转到(在本例中)第二页,它将从db条目20开始 问题是,首先,由于我将其设置为每页20个结果,这意味着我会得到像第4页那样的奇数URL 第二,这是一个双重数字,我想整理一下 基本上,我想做的是将URL设置为: http://www.

我正在使用Codeigniter中的分页类从数据库中分页出一些信息

这一切都很完美,但是,我正在尝试整理人们用来访问页面的URL

目前,我正在从URL中提取偏移量,并将其设置为每页20个结果:

http://www.mysite.com/page/20
因此,如果您转到(在本例中)第二页,它将从db条目20开始

问题是,首先,由于我将其设置为每页20个结果,这意味着我会得到像第4页那样的奇数URL

第二,这是一个双重数字,我想整理一下

基本上,我想做的是将URL设置为:

http://www.mysite.com/page/2
http://www.mysite.com/page/3
http://www.mysite.com/page/4
等等

我将usepage number设置为TRUE,但问题是,当它应该是20、40、60时,它会将偏移量设置为2、3、4等


有什么想法吗?我在考虑在模型中进行某种计算,根据URL中的单个页码(当use page number设置为TRUE时),计算出它应该偏移多少条目。我似乎无法正确理解…

在codeigniter中,url中的数字表示:每页行数
因此,如果您需要使用页码更改每页编号,请按如下方式更改代码:

控制器

class news extends CI_Controller{
    function index($page = 'page', $page_number = 0){
         $row_per_page = 20; // define page per page

         // for example if page number == 4 then offset 80
         $offset = $page_number * $row_per_page 

         // we need to request data from database
         // we need this query "SELECT * FROM `mytable` limit 80,20"
         // offset = 80 AND per page = 20
         $this->db->get('mytable', $offser, $row_per_page); 

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

         // you can change this url by URI Routing and other solutions.
         /*
          change application/config/routes.php to nice url
          $route['news/page/(:num)'] = "news/index/page/$1";

         */
         $config['base_url'] = 'http://example.com/index.php/news/index/page/';

         // Change $count_of_rows with your query num_rows you can use SQL_CALC_FOUND_ROWS 
         $config['total_rows'] = $count_of_wors;
         $config['per_page'] = $row_per_page; 

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

         echo $this->pagination->create_links();
    }

}

这很简单。享受CI

好吧,我想我已经想好了。我所做的是将use_page_number设置为true。然后当我得到URL的偏移量时,我将其乘以10,然后再乘以10分钟,然后再乘以两倍。例如第4页(期望的偏移量是60),我做4*10=40。然后用10分钟得到30分,再加倍得到60分。简单的数学我想,可能不需要在这里问哈哈。请随意发布您的答案,并将其标记为已接受,以方便未来的访问者:)在我的代表达到100之前,我无法回答我自己的问题。啊,是的-忘记了代表的限制。我意识到这很旧,但您的数学已经过时了。偏移量为80将是第5页,而不是第4页。要获得正确的偏移量,它将是($page\u number-1)*$row\u每页。