Domanda

Usando la classe Active Record di CodeIgniter e MySQL, ho una tabella di post con user_id e vari altri campi e voglio contare quanti post ha scritto ciascun utente. Potrei ottenere righe in cui user_id = $ qualunque e contare il numero di risultati, ma dovrei scorrere ogni user_id e usare quel count_all_results () interrogazione ripetutamente per ognuna.

Deve esserci un modo migliore! Se ogni campo avesse solo un campo con un 1 , potrei select_sum su quel campo e ottenere un conteggio. Ma questo sembra stupido.

Molte grazie in anticipo!

È stato utile?

Soluzione

L'uso del record attivo dovrebbe essere:

$this->db->select('field1, ... ,fieldn, count(1) as number_elements_of_row');

$this->db->group_by(array('field_group_1', ... ,'field_group_n'));

$result = $this->db->get('mytable');

quindi $ result avrà quello che ti serve!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top