Подтвердить что ты не робот

CodeIgniter Active Record - получить количество возвращенных строк

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

Как я могу выбрать некоторые данные из одной из моих таблиц, а затем подсчитать, сколько строк будет возвращено с помощью класса ActiveX класса CodeIgniters?

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

Ответ 3

Это относится к модели:

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();

Ответ 4

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

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

Ответ 5

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

$query->num_rows();

Ответ 6

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

  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.

Ответ 7

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

function num_rows($table)
    {   
       return $this->db->affected_rows($table);
    }

Ответ 8

$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;
}

Ответ 9

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