Codeigniter Select и подсчет записей MySQL - PullRequest
0 голосов
/ 10 мая 2018

Используя Codeigniter 3, я хотел бы отобразить все записи из таблицы в базе данных MySQL. Я также хотел бы включить количество выбранных записей.

Например;

Showing x number of records;

record 1
record 2
record 3
etc

В настоящее время у меня есть следующее (который работает);

// select all records
public function selectRecords() {
    $this->db->select('*');
    $this->db->from('records');
    $query = $this->db->get();
    return $query->result_array();
}

// count all records 
public function countRecords() {
    $this->db->select('count(*) as count');
    $this->db->from('records');
    $query = $this->db->get();
    return $query->row();
}

У меня вопрос: нужны ли мне два отдельных запроса для достижения этой цели (select and count)?

Есть ли более эффективный способ достижения того, чего я хочу?

Ответы [ 4 ]

0 голосов
/ 10 мая 2018

попробуйте, это поможет вам обеспечить нумерацию записей

public function selectRecords($params = array(), $count = false) {

    $offset = isset($params['offset']) ? $params['offset'] : '';
    $limit = isset($params['limit']) ? $params['limit'] : '';
    $this->db->select('*');
    $this->db->from('records');

    $query = $this->db->get();
    if ($count) {
           return $this->db->get()->num_rows();
      }

      if (empty($offset) && !empty($limit)) {
           $this->db->limit($limit);
      }
      if (!empty($offset) && !empty($limit)) {
           $this->db->limit($limit, $offset);
      }

      $result = $this->db->get()->result();
      return $result;
}
0 голосов
/ 10 мая 2018

В самой первой функции вы можете получить счет, используя $query->num_rows() function

public function selectRecords() {
   $return = array();
   $this->db->select('*');
   $this->db->from('records');
   $query = $this->db->get();
   $return['count']   =  $query->num_rows(); 
   $return['records'] =  $query->result_array();
   return $return;
} 
0 голосов
/ 10 мая 2018

Вы можете сделать что-то вроде этого:

public function selectRecords() 
{
    $query = $this->db->get('records');
    if ($query->num_rows() > 0 )
    {
       $records = $query->result_array();
       $data['count'] = count($records);
       $data['all_records'] = $records;
       return $data;
    }  
}

Передайте его в вид с вашего контроллера:

 $data = $this->model_name->selectRecords();
 /*print_r($data) to see the output*/
 $this->load->view('your_view',$data);

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

<?php echo $count .' number of records';?>
0 голосов
/ 10 мая 2018

Вы можете сделать только:

public function selectRecords() {
    $this->db->select('*');
    $this->db->from('records');
    $query = $this->db->get();
    return $query->result_array();
}

и

$records = $this->selectRecords();
$count = count($records);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...