codeigniter получить количество num_rows

0

Это контроллер

public function index()
{
    $data['page_title'] = 'Home';
    $data['new_grievances'] = $this->admin_home->get_members();
$data['num_row'] = count($data['new_grievances'] );
print_r($data['new_grievances']);
print_r($data['num_row']);
    $this->load->view('admin/grievances_admin_home' , $data);
}

Это моя модель

function get_members() {
    // $query = $this->db->get('enquiry');
    // return $query;
    $this->db->from('enquiry a');
    $this->db->join('enquiry_department b', 'a.department=b.id' , 'inner');
    $this->db->join('enquiry_user_type c', 'a.user_type=c.id' , 'inner');
    $this->db->WHERE('a.status IS NULL');
    $query = $this->db->get(); 
    return $query;
}

Я хочу получить строки и число count. здесь я выполняю mysql query $ data ['new_grievances'] число строк равно 0. поэтому вывод $ data ['num_row'] должен быть возвращен как ноль. но у меня есть результат как 1. Затем я печатаю значение $ data ['new_grievances'], которое дает результат как

CI_DB_mysqli_result Object ( [conn_id] => mysqli Object ( [affected_rows] => 0 [client_info] => mysqlnd 5.0.11-dev - 20120503 - $Id: 76b08b24596e12d4553bd41fc93cccd5bac2fe7a $ [client_version] => 50011 [connect_errno] => 0 [connect_error] => [errno] => 0 [error] => [error_list] => Array ( ) [field_count] => 12 [host_info] ......

Я не знаю, как решить эту проблему, предложите некоторые идеи

Теги:
codeigniter

4 ответа

3
Лучший ответ

Измените свой код из return $query; для return $query->result(); этим вы также можете использовать свои $data внутри представления и подсчитать общие результаты в вашем контроллере.

Это контроллер

public function index()
{
    $data['page_title'] = 'Home';
    $data['new_grievances'] = $this->admin_home->get_members();
    $data['num_row'] = count($data['new_grievances'] );
    print_r($data['new_grievances']);
    print_r($data['num_row']);
    $this->load->view('admin/grievances_admin_home' , $data);
}

Это моя модель

function get_members() {
    $this->db->from('enquiry a');
    $this->db->join('enquiry_department b', 'a.department=b.id' , 'inner');
    $this->db->join('enquiry_user_type c', 'a.user_type=c.id' , 'inner');
    $this->db->WHERE('a.status IS NULL');
    $query = $this->db->get(); 
    return $query->result();
}
  • 0
    Пожалуйста. Надеюсь, я объяснил логику в порядке.
  • 0
    @rangarajseo: Если вы получили ответ, отметьте его как ответ
Показать ещё 1 комментарий
1
public function index()
{
    $data['page_title'] = 'Home';
    $data['new_grievances'] = $this->admin_home->get_members();
    /*Old Code
    $data['num_row'] = count($data['new_grievances'] );*/
    //New Code
    $data['num_row'] = $data['new_grievances'];
    print_r($data['new_grievances']);
    print_r($data['num_row']);
    $this->load->view('admin/grievances_admin_home' , $data);
}

модель

function get_members() {
    $this->db->from('enquiry a');
    $this->db->join('enquiry_department b', 'a.department=b.id' , 'inner');
    $this->db->join('enquiry_user_type c', 'a.user_type=c.id' , 'inner');
    $this->db->WHERE('a.status IS NULL');
    return $this->db->count_all_results();
}
1

Ниже приведены строки.

public function index()
{
    $data['page_title'] = 'Home';
    $new_grievances = $this->admin_home->get_members();
    $data['num_row'] = $new_grievances->num_rows();
    print_r($new_grievances->result());
    $data['new_grievances'] = $new_grievances->result()
    print_r($data['num_row']);
    $this->load->view('admin/grievances_admin_home' , $data);
}
0

Просто используйте приведенную ниже строку, чтобы получить результаты от БД

$ query = $this-> db-> get(); $ results = $query-> result();

и используйте приведенный ниже код, чтобы получить количество найденных строк $ count = $query-> num_rows();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню