CodeIgniter Active Record – Récupère le nombre de lignes renvoyées

Je suis très novice dans CodeIgniter et Active Record en particulier, je sais comment bien le faire en SQL normal mais j’essaie d’apprendre.

Comment puis-je sélectionner des données dans l’une de mes tables, puis compter le nombre de lignes renvoyées à l’aide de la classe CodeIgniters Active Record?

Merci Tom.

Regardez les fonctions de résultat ici :

$this->db->from('yourtable'); [... more active record code ...] $query = $this->db->get(); $rowcount = $query->num_rows(); 

ET, si vous voulez simplement obtenir un compte de toutes les lignes d’une table

 $table_row_count = $this->db->count_all('table_name'); 

Cela va à votre modèle:

 public function count_news_by_category($cat) { return $this->db ->where('category', $cat) ->where('is_enabled', 1) ->count_all_results('news'); } 

C’est un exemple de mon projet actuel.

Selon l’ parsing comparative, cette requête fonctionne plus rapidement que si vous procédez comme suit:

 $this->db->select('*')->from('news')->where(...); $q = $this->db->get(); return $q->num_rows(); 

Si vous n’avez besoin que du nombre de lignes d’une requête et que vous n’avez pas besoin des données de ligne réelles, utilisez count_all_results

 echo $this->db ->where('active',1) ->count_all_results('table_name'); 

Je dois juste lire le fils de docs!

 $query->num_rows(); 

Vous pouvez le faire de deux manières différentes:

  1. $this->db->query(); //execute the query $query = $this->db->get() // get query result $count = $query->num_rows() //get current query record. 2. $this->db->query(); //execute the query $query = $this->db->get() // get query result $count = count($query->results()) or count($query->row_array()) //get current query record. 

Ceci est également une fonction très utile si vous recherchez une ligne ou des données avec où condition affectée

 function num_rows($table) { return $this->db->affected_rows($table); } 
 $this->db->select('count(id) as rows'); $this->db->from('table_name'); $this->db->where('active',1); $query = $this->db->get(); foreach($query->result() as $r) { return $r->rows; } 

Ce segment de code pour votre modèle

 function getCount($tblName){ $query = $this->db->get($tblName); $rowCount = $query->num_rows(); return $rowCount; } 

Ceci est pour controlr

  public function index() { $data['employeeCount']= $this->CMS_model->getCount("employee"); $this->load->view("hrdept/main",$data); } 

Ceci est pour la vue

 

Ce code est utilisé dans mon projet et fonctionne correctement.

résultat

 function getCount(){ return $this->db->get('table_name')->num_rows(); }