Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 对非对象调用成员函数num_rows()_Php_Activerecord_Codeigniter 2 - Fatal编程技术网

Php 对非对象调用成员函数num_rows()

Php 对非对象调用成员函数num_rows(),php,activerecord,codeigniter-2,Php,Activerecord,Codeigniter 2,我正在使用CodeIgniter,我想从数据库中的表中获取一些数据 在我的模型中,我有以下功能: public function fetch_cours($limit, $start, $element) { $id_element = $this->db->from('element') ->where('name',$element)

我正在使用CodeIgniter,我想从数据库中的表中获取一些数据

在我的模型中,我有以下功能:

public function fetch_cours($limit, $start, $element) {

        $id_element = $this->db->from('element')
                               ->where('name',$element)
                               ->limit(1)
                               ->get()
                               ->result();

        $query = $this->db->from('cour')
                           ->where('id_element',(int) $id_element[0]->id)
                           ->limit($limit, $start)
                           ->get()
                           ->result();
        var_dump($query);

        if ($query->num_rows() > 0) {
            foreach ($query->result() as $row) {
                $data[] = $row;
            }
            return $data;
        }
        return false;
   }
我希望此函数返回
cour
表中的一些记录

在我的控制器中,我有一行:

$cours = $this->cours_m->fetch_cours(10,0,'Programmation Orientée Objet (Java)');
当我呼叫我的控制器时,我收到以下消息:

第38行是:
if($query->num_rows()>0){

所以我做了一个var_dump($query),结果如下:

问题是什么?我如何解决它?

调用->result(),查询执行的结果在一个数组中。您可以这样调用变量,例如:

$cours = $this->db->from('cour')
    ->where('id_element',(int) $id_element[0]->id)
    ->limit($limit, $start)
    ->get()
    ->result();
然后将测试更改为:

if (count($cours) > 0) {
    foreach ($cours->result() as $row) {
        $data[] = $row;
    }
    return $data;
}

创建
$query
变量时,您已经添加了一个
->result()

因此,
$query
是一个行对象数组

您应该将
if
更改为:

if (count($query) > 0) {
例如,可能将变量重命名为
$results