Je suis très nouveau dans CodeIgniter et Active Record en particulier, je sais bien le faire en SQL normal mais j'essaie d'apprendre.
Comment 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ésultats ici :
$this->db->from('yourtable');
[... more active record code ...]
$query = $this->db->get();
$rowcount = $query->num_rows();
AND, si vous voulez juste obtenir le nombre de toutes les lignes d'une table
$table_row_count = $this->db->count_all('table_name');
Cela vous va 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 benchmarking 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 avez seulement besoin du nombre de lignes d'une requête et 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 la documentation!
$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.
$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;
}
C'est également une fonction très utile si vous recherchez des lignes ou des données avec la condition affectée.
function num_rows($table)
{
return $this->db->affected_rows($table);
}
Ce segment de code pour votre modèle
function getCount($tblName){
$query = $this->db->get($tblName);
$rowCount = $query->num_rows();
return $rowCount;
}
C'est pour controlr
public function index() {
$data['employeeCount']= $this->CMS_model->getCount("employee");
$this->load->view("hrdept/main",$data);
}
C'est pour voir
<div class="count">
<?php echo $employeeCount; ?>
</div>
Ce code est utilisé dans mon projet et fonctionne correctement.
function getCount(){
return $this->db->get('table_name')->num_rows();
}
$sql = "SELECT count(id) as value FROM your_table WHERE your_field = ?";
$your_count = $this->db->query($sql, array($your_field))->row(0)->value;
echo $your_count;