在codeigniter上查询结果:致命错误:在非对象上调用成员函数num_rows()

时间:2015-05-30 05:26:20

标签: php codeigniter

我有一个这样的模型:

public function selectRequestPerUser($nama_user) {
    $query = $this->db->get_where('tbl_requestfix', array('nama_user' => $nama_user));
    return $query->result_array();
}

在控制器上,我写道:

$request = $this->model_request->selectRequestPerUser($this->session->userdata('nama'));
$total_rows = $request->num_rows();

浏览器给出了这样的错误:

Fatal error: Call to a member function num_rows() on a non-object

我需要num_rows的结果来创建分页,感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

而不是在num_rows()中获取controller您需要编写一个新查询来获取模型文件中的总行数,并从控制器中调用它,如下所示。

<强>控制器

$total_rows = $this->model_request->countPerUser($this->session->userdata('nama'));

<强>模型

public function countPerUser($nama_user) {
    $query = $this->db->get_where('tbl_requestfix', array('nama_user' => $nama_user));
    return $query->num_rows();
}

为什么会出现此错误

Fatal error: Call to a member function num_rows() on a non-object

因为num_rows()仅适用于查询实例。我们可以使用num_rows()来获取数组或对象上的行数。

答案 1 :(得分:0)

在你的模特中

public function selectRequestPerUser($nama_user) {
    $query = $this->db->get_where('tbl_requestfix', array('nama_user' => $nama_user));
    return $query;
}

然后在控制器中使用num_rows()函数

答案 2 :(得分:0)

只需使用sizeof()

即可

型号: (与您的相同)

public function selectRequestPerUser($nama_user) 
{
    $query = $this->db->get_where('tbl_requestfix', 
                        array('nama_user' => $nama_user));
    return $query->result_array();
}

<强>控制器:

$request = $this->model_request->selectRequestPerUser($this->session->userdata('nama'));
$total_rows = sizeof($request);