使用codeigniter对查询进行foreach?

Posted

技术标签:

【中文标题】使用codeigniter对查询进行foreach?【英文标题】:doing a foreach on queries using codeigntier? 【发布时间】:2012-08-07 21:10:44 【问题描述】:

我正在尝试使用 codeigniter 在我的模型上执行foreach,但它给了我一个错误并返回了结果。

代码如下:

public function read()
        $questions; //array
        $query = $this->db->get('questions');
        foreach($query->result() as $row)
            $getAnswers = $this->db->get_where('answers', array('question_id'=>$row['question_id]']), 4);
            $questions= $getAnswers;

           

        return $questions;
     

这是错误:

致命错误:不能将 stdClass 类型的对象用作数组

【问题讨论】:

$getAnswers= $this-db ......基本上是5 我认为你的 foreach 中的部分应该是 $questions[] = $getAnswers;否则你只会有最后一行......你也可以在你的 foreach 之前正确创建数组...... $questions = array(); --- 只是我注意到了 【参考方案1】:

作为对象访问row

$getAnswers = $this->db->get_where('answers', 
                   array('question_id'=>$row->question_id), 4);

【讨论】:

感谢您的回答,这行得通,但是我可以问您我是否正确返回了问题对象数组,因为它说错了谢谢我的 +1 或者用$query->result_array()代替$query->result() @user1551482,这个答案修复了错误,但是您尝试检索问题和答案的方式有很多缺陷。看看联接。 很高兴它有帮助。 @user1551482 您正在擦除每次迭代的数据。要么按照 Mischa 的建议使用连接,要么使用 array_push($questions, $getAnswers);。联接要好得多。

以上是关于使用codeigniter对查询进行foreach?的主要内容,如果未能解决你的问题,请参考以下文章

codeigniter foreach 具有相同 ID 的多个条目,对元素求和并显示为一个

Codeigniter 服务器超时 - 在 for 循环中运行批量数据库查询

foreach 给了我四次相同的行(PHP、Active Record、CodeIgniter)

Codeigniter - Foreach 仅返回 1 行

使用 CodeIgniter 的 ActiveRecord 对多个条件逻辑进行分组

Codeigniter中的查询顺序[重复]