web-dev-qa-db-fra.com

CodeIgniter Active Record - Récupère le nombre de lignes retournées

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.

61
Zim

Regardez les fonctions de résultats ici :

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

AND, si vous voulez juste obtenir le nombre de toutes les lignes d'une table

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

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();
31
Yura Loginov

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');
16
pbarney

Je dois juste lire le fils de la documentation!

$query->num_rows();
9
ascotan

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.
3
prash.patil
$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;
}
2
Bijendra Ch

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);
    }
2
Nishant Lad

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.

result

1
Lucky
function getCount(){
    return $this->db->get('table_name')->num_rows();
}
0
Sunday Okoi
$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;
0
John Erck