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.
function getCount(){ return $this->db->get('table_name')->num_rows(); }