Mysql
 sql >> Database >  >> RDS >> Mysql

Record attivo di Codeigniter - Conteggio righe totali trovate con limite (MySQL)

In precedenza avevo lo stesso identico requisito per l'impaginazione e sono stato in grado di farlo funzionare utilizzando CodeIgniter Active Record.

Innanzitutto, imposta l'opzione SQL_CALC_FOUND_ROWS come pseudo colonna nell'istruzione select e imposta la query di escape su false:

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

Quindi, dopo aver eseguito la query con il limite e l'offset in atto, assegna il set di risultati a un array restituito:

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

Infine, esegui una seconda query per ottenere le righe trovate e assegnale anche all'array restituito. Sto usando il metodo concatenato qui per fare tutto in un solo passaggio.

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

E restituisce l'array del risultato e del conteggio delle righe.

return $return;