Я работаю в 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 только для подсчета строк, так как я уже запустил один. Есть ли какой-либо другой эффективный способ подсчета из одного запроса?
Также вы можете использовать свою функцию:
public function get_results()
{
$query = $this->db->get('data');
$result = $query->result();
return $result
}
затем при вызове функции:
$result= $this->your_model->get_results();
$count = count($result);
вернуть объект запроса из вашей модели
// Модель
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
}
Вы можете сделать это следующим образом:
public function get_results()
{
$query = $this->db->get('data');
$data['result'] = $query->result();
$data['count'] = $query->num_rows();
return $data;
}
Это может помочь вам.