Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Codeigniter Active Record - Contar o total de linhas encontradas com limite (MySQL)


Anteriormente, eu tinha exatamente o mesmo requisito para paginação e consegui fazê-lo funcionar usando o CodeIgniter Active Record.

Primeiro, defina a opção SQL_CALC_FOUND_ROWS como uma pseudocoluna em sua instrução select e defina a consulta de escape como false:
$this->db->select('SQL_CALC_FOUND_ROWS null as rows, other columns ...',FALSE);

Então, depois de executar sua consulta com o limite e o deslocamento no lugar, atribua o conjunto de resultados a uma matriz de retorno:
$data = $this->db->get();
$return['results'] = $data->result();
// Do something with the results

Por fim, execute uma segunda consulta para obter as linhas encontradas e também atribua isso à matriz de retorno. Estou usando o encadeamento de métodos aqui para fazer tudo em uma única etapa.
$return['rows'] = $this->db->query('SELECT FOUND_ROWS() count;')->row()->count;

E retorne o resultado e a matriz de contagem de linhas.
return $return;