CodeIgniter Active Record - получает количество возвращаемых строк - PullRequest
63 голосов
/ 03 августа 2009

Я очень плохо знаком с CodeIgniter и Active Record, в частности, я знаю, как хорошо это делать в обычном SQL, но я пытаюсь научиться.

Как выбрать некоторые данные из одной из моих таблиц, а затем подсчитать, сколько строк возвращено с использованием класса Active Record CodeIgniters?

Спасибо, Том.

Ответы [ 10 ]

120 голосов
/ 03 августа 2009

Посмотрите на результат функции здесь :

$this->db->from('yourtable');
[... more active record code ...]
$query = $this->db->get();
$rowcount = $query->num_rows();
38 голосов
/ 04 августа 2009

И, если вы просто хотите получить счетчик всех строк в таблице

$table_row_count = $this->db->count_all('table_name');
31 голосов
/ 09 декабря 2011

Это идет к вам модель:

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

Это пример из моего текущего проекта.

Согласно бенчмаркингу этот запрос работает быстрее, чем если бы вы сделали следующее:

$this->db->select('*')->from('news')->where(...); 
$q = $this->db->get(); 
return $q->num_rows();
16 голосов
/ 20 июня 2011

Если вам нужно только количество строк в запросе и вам не нужны фактические данные строки, используйте count_all_results

echo $this->db
       ->where('active',1)
       ->count_all_results('table_name');
9 голосов
/ 04 августа 2009

Просто должен прочитать документы, сын!

$query->num_rows();
3 голосов
/ 29 июля 2014

Вы можете сделать это двумя разными способами:

  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.
2 голосов
/ 20 января 2016
$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 голосов
/ 31 декабря 2012

Это также очень полезная функция, если вы ищете строки или данные, на которые влияет условие

function num_rows($table)
    {   
       return $this->db->affected_rows($table);
    }
1 голос
/ 03 июля 2018

Этот сегмент кода для вашей модели

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

Это для контроллера

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

Это для просмотра

<div class="count">
  <?php echo $employeeCount; ?>                                                                                            
 </div>

Этот код используется в моем проекте и работает правильно.

result

0 голосов
/ 18 августа 2017
function getCount(){
    return $this->db->get('table_name')->num_rows();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...