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

したがって、URLは次のようになります。http://server.com/index.php/controller/function?page_number=2

($this->input->get('page_number') * $config['per_page'])したがって、オフセットとしてになる を取得する必要があり、制限はになります$config['per_page']

  1. 同じ計算を使用して、ビューファイルで実行し、それを..!に渡すことがurlできpost parameterます。limit=1&offset=2

私はこれが最善であるとは言いませんが、その解決策です。

あなたはあなたが望むものを選ぶ..!

于 2012-05-31T07:21:01.310 に答える