我正在使用Codeigniter中的分页类来从我的数据库中分页输出一些信息。
这一切都很完美,但是,我正在尝试整理人们用来访问网页的网址。
目前,我正在从网址中提取偏移量并将其设置为每页20个结果:
http://www.mysite.com/page/20
因此,如果您转到(在本例中)第2页,它将从db entry 20开始。
问题在于,首先,因为我已经将其设置为每页20个结果,这意味着我得到像http://www.mysite.com/page/60这样的奇怪网址,这将是第4页。
其次,这是一个双重数字,我想整理一下。
基本上我想要做的是将URL设置为:
http://www.mysite.com/page/2
http://www.mysite.com/page/3
http://www.mysite.com/page/4
等...
我将使用页码设置为TRUE,但问题是它将偏移量设置为2,3,4等,应该是20,40,60。
有什么想法吗?我正在考虑在模型中进行某种计算,以根据URL中的单个页码计算出应该偏移的条目数(当使用页码设置为TRUE时)。我似乎无法做到正确......
答案 0 :(得分:2)
在url中的codeigniter编号中表示:每页行数
因此,如果您需要使用页码更改每页号码,请更改以下代码:
<强>控制器强>
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