Вернуть результат запроса и количество строк

Я работаю в MVC CodeIgniter с MySQL и PHP.
Обычный случай — я получаю данные из базы данных и хочу их подсчитать. Интересно, как я могу сделать это наиболее оптимальным способом? Разумно ли делать это в один функционировать?

Я поделюсь с вами своим решением и, пожалуйста, скажите мне, насколько это хороший подход. Допустим, у нас есть функция Model:

public function get_results()
{
$query = $this->db->get('data');
$result = $query->result();
$count = $query->num_rows();
return [$result, $count];
}

Вопрос не глупо ли возвращать оба значения таким образом?

Я хочу избежать создания новой функции num_result () выполнение другого SQL только для подсчета строк, так как я уже запустил один. Есть ли какой-либо другой эффективный способ подсчета из одного запроса?

1

Решение

Также вы можете использовать свою функцию:

public function get_results()
{
$query = $this->db->get('data');
$result = $query->result();
return $result
}

затем при вызове функции:

$result= $this->your_model->get_results();
$count = count($result);
1

Другие решения

вернуть объект запроса из вашей модели
// Модель

public function get_results()
{
return $this->db->get('data');

}

// контроллер

public function index(){
$obj = $this->mymodel->get_results();
$obj->num_rows(); //Count result
$obj->result();   // rows object
$obj->result_aray(); //rows array

}
0

Вы можете сделать это следующим образом:

public function get_results()
{
$query = $this->db->get('data');
$data['result'] = $query->result();
$data['count'] = $query->num_rows();
return $data;
}

Это может помочь вам.

0
По вопросам рекламы [email protected]