Строки счетчика php codeigniter

Я новичок в codeigniter, я хочу считать все строки из таблицы базы данных, но доза запроса не возвращает точное количество строк. Вот модель

public function countRow(){
$query = $this->db->query("SELECT *,count(id) AS num_of_time FROM home");
    // print_r($query->result());
    return $query->result();
}

и это контроллер

public function countTotalrow(){
     $data['query'] = $this->home_model->countRow(); 
}

это вид

foreach ($num_of_time as $row){
    <span><?php print_r($row->id);?></span>

Ответ 1

Вы можете использовать вспомогательную функцию $query->num_rows()

Возвращает количество строк, возвращаемых запросом. Вы можете использовать следующее:

$query = $this->db->query('SELECT * FROM my_table');
echo $query->num_rows();

Ответ 2

Используйте этот код:

$this->db->where(['id'=>2])->from("table name")->count_all_results();

или

$this->db->from("table name")->count_all_results();

Ответ 3

Это то, что сделал, что решил ту же проблему. Я решил это, создав функцию, которая возвращает результат запроса таким образом:

function getUsers(){
$query = $this->db->get('users');
return $query->result();
}

//Приведенный выше код может быть в user_model или в любой другой модели.

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

Используйте этот код ниже в вашем контроллере, где вам нужен счетчик, а также массив результатов().

//This gives you the user count using the count function which returns and integer of the exact rows returned from the query.
$this->data['user_count'] = count($this->user_model->getUsers());

//This gives you the returned result array.
$this->data['users'] = $this->user_model->getUsers();

Надеюсь, это поможет.

Ответ 4

Если вы действительно хотите считать все строки. Вы можете использовать это в функции модели:

$this->db->select('count(*)');
$query = $this->db->get('home');
$cnt = $query->row_array();
return $cnt['count(*)'];

Он возвращает одно значение, то есть количество строк

Ответ 5

замените запрос внутри вашей функции модели на

$query = $this->db->query("SELECT id FROM home");

в поле зрения:

echo $query->num_rows();

Ответ 6

Вы можете попробовать этот

    $this->db->where('field1',$filed1);
    $this->db->where('filed2',$filed2);
    $result = $this->db->get('table_name')->num_rows();

Ответ 7

Чтобы подсчитать все строки в таблице:

echo $this->db->count_all_results('table_name');

Чтобы подсчитать выбранные строки из таблицы:

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

Ответ 8

Для подсчета всех строк в таблице:

контроллер:

function id_cont() {
   $news_data = new news_model();
   $ids=$news_data->data_model();
   print_r($ids);
}

Модель:

function data_model() {
    $this->db->select('*');
    $this->db->from('news_data');
    $id = $this->db->get()->num_rows();
    return $id;
}

Ответ 9

public function number_row()
 {
    $query = $this->db->select("count(user_details.id) as number")
                       ->get('user_details');              
      if($query-> num_rows()>0)
      {
          return $query->row();
      } 
      else
      {
          return false;
      } 
   }

Ответ 10

Попробуйте это:) Я создал мою модель для подсчета всех результатов.

в library_model

function count_all_results($column_name = array(),$where=array(), $table_name = array())
{
        $this->db->select($column_name);
        // If Where is not NULL
        if(!empty($where) && count($where) > 0 )
        {
            $this->db->where($where);
        }
        // Return Count Column
        return $this->db->count_all_results($table_name[0]);//table_name array sub 0
}

Ваш контроллер будет выглядеть следующим образом

public function my_method()
{
  $data = array(
     $countall = $this->model->your_method_model()
  );
   $this->load->view('page',$data);
}

Затем простой вызов модели библиотеки в вашей модели

function your_method_model()
{
        return $this->library_model->count_all_results(
               ['id'],
               ['where],
               ['table name']
           );
}

Ответ 11

public function record_count() {
   return $this->db->count_all("tablename");
}