sql >> Base de Datos >  >> RDS >> Mysql

Registro activo de Codeigniter:cuente el total de filas encontradas con límite (MySQL)

Anteriormente tenía exactamente el mismo requisito para la paginación y pude hacerlo funcionar usando CodeIgniter Active Record.

Primero, configure la opción SQL_CALC_FOUND_ROWS como una pseudocolumna en su declaración de selección y establezca la consulta de escape en falso:

$this->db->select('SQL_CALC_FOUND_ROWS null as rows, other columns ...',FALSE);

Luego, después de ejecutar su consulta con el límite y la compensación en su lugar, asigne el conjunto de resultados a una matriz de retorno:

$data = $this->db->get();
$return['results'] = $data->result();
// Do something with the results

Finalmente, ejecute una segunda consulta para obtener las filas encontradas y también asígnelas a la matriz de retorno. Estoy usando el encadenamiento de métodos aquí para hacerlo todo en un solo paso.

$return['rows'] = $this->db->query('SELECT FOUND_ROWS() count;')->row()->count;

Y devolver el resultado y la matriz de recuento de filas.

return $return;