0

我认为每个人(主要是 CI 用户的初学者)都在使用活动记录进行分页时遇到困难。

在 CI 的官方文档中,没有明确的声明解释如何在活动记录中使用分页类对象。我的问题是;不能定义当前页面并将其设置为 SQL 语句。因此,当程序通过分页从 MySQL 中获取数据时,所有页面都首先导航 0 和$config['per_page'];. 我的意思是,如果我设置为per_page=20,所有页面链接都会获取 0,20 个 MySQL 行。

我的 SQL 语句是:

$this->db->query("SELECT b.*, a.adCampaignTitle FROM ads a, sms b WHERE b.`smsAd_ID`=a.ad_ID LIMIT " . $config['per_page'])->result();

我的分页类属性:

$this->load->database();
$config['base_url'] = 'http://localhost/index.php/admin/index/page/';
$config['total_rows'] = $this->db->count_all('sms');
$config['per_page'] = 2;
$this->pagination->initialize($config);

如果有人帮助我如何初始化并将当前页面设置为 SQL 部分,我将非常高兴......

4

2 回答 2

1

查看您的 URL,第 4 段将包含偏移量。

因此,您可以使用:

$offset = $this->uri->segment(4, 0);

$this->db->query("SELECT ... LIMIT {$offset}, {$config['per_page']}");
于 2012-05-30T23:45:24.827 回答
1

我们可以通过几种方式做到这一点..!

  1. 您必须随身携带页码。就像每个电话一样,您只需移动到页码。

该参数可以称为page_number

所以你的网址看起来像http://server.com/index.php/controller/function?page_number=2

所以你只需要得到($this->input->get('page_number') * $config['per_page'])will become 作为一个 offset 然后 limit will be $config['per_page']

  1. 使用相同的计算,您可以在视图文件中执行并将其传递给urlpost parameter喜欢limit=1&offset=2..!

我不会说这是最好的,但它是一个解决方案。

你选择你想要的..!

于 2012-05-31T07:21:01.310 回答