Ik had eerder exact dezelfde vereiste voor paginering en ik kon het laten werken met CodeIgniter Active Record.
Stel eerst de optie in SQL_CALC_FOUND_ROWS
als een pseudo-kolom in uw select-statement en stel de escape-query in op false:
$this->db->select('SQL_CALC_FOUND_ROWS null as rows, other columns ...',FALSE);
Wijs vervolgens, nadat u uw query heeft uitgevoerd met de limiet en offset op hun plaats, de resultaatset toe aan een retourarray:
$data = $this->db->get();
$return['results'] = $data->result();
// Do something with the results
Voer ten slotte een tweede query uit om de gevonden rijen te krijgen en wijs die ook toe aan de retourarray. Ik gebruik hier methodeketen om alles in één stap te doen.
$return['rows'] = $this->db->query('SELECT FOUND_ROWS() count;')->row()->count;
En retourneer het resultaat en het aantal rijen.
return $return;