Mysql
 sql >> Base de données >  >> RDS >> Mysql

Codeigniter Active Record - Compter le nombre total de lignes trouvées avec limite (MySQL)

J'avais auparavant exactement la même exigence de pagination, et j'ai pu le faire fonctionner en utilisant CodeIgniter Active Record.

Tout d'abord, définissez l'option SQL_CALC_FOUND_ROWS en tant que pseudo-colonne dans votre instruction select et définissez la requête d'échappement sur false :

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

Ensuite, après avoir exécuté votre requête avec la limite et le décalage en place, affectez le jeu de résultats à un tableau de retour :

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

Enfin, exécutez une deuxième requête pour obtenir les lignes trouvées et affectez-les également au tableau de retour. J'utilise ici le chaînage de méthodes pour tout faire en une seule étape.

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

Et renvoyez le résultat et le tableau de nombre de lignes.

return $return;