使用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)