Saya sebelumnya memiliki persyaratan yang sama persis untuk pagination, dan saya dapat membuatnya bekerja menggunakan CodeIgniter Active Record.
Pertama, atur opsi SQL_CALC_FOUND_ROWS
sebagai kolom pseudo dalam pernyataan pilih Anda dan setel kueri pelarian ke false:
$this->db->select('SQL_CALC_FOUND_ROWS null as rows, other columns ...',FALSE);
Kemudian, setelah Anda menjalankan kueri Anda dengan batas dan offset di tempat, tetapkan hasil yang disetel ke array kembali:
$data = $this->db->get();
$return['results'] = $data->result();
// Do something with the results
Terakhir, jalankan kueri kedua untuk mendapatkan baris yang ditemukan dan juga tetapkan itu ke array kembali. Saya menggunakan metode chaining di sini untuk melakukan semuanya dalam satu langkah.
$return['rows'] = $this->db->query('SELECT FOUND_ROWS() count;')->row()->count;
Dan kembalikan hasil dan larik jumlah baris.
return $return;