请问如何传数组$data['*']的id的值
本帖最后由 iyuki0430 于 2010-4-16 01:59 编辑我做了一个带回复功能的留言板,控制器里我想把数组$data['journal_comment']的id 的值传给$data['journal_replytocom'],但是像我那样写取到的值是Array,
哪位大大告诉我下该怎么传值吧,弄了两天了都没弄明白~:'(
这是页面显示的错误信息:
A Database Error Occurred
Error Number: 1054
Unknown column 'Array' in 'where clause'
SELECT * FROM comments WHERE replytocom = Array order by last_date asc
控制器:
function content()
{
$this->load->model('Mhome');
$data['journal_comment'] = $this->Mhome->get_journal_comment($this->uri->segment(3));
$data['journal_replytocom'] = $this->Mhome->get_journal_replytocom($data);
}
模型:
function get_journal_comment($article_id)
{
$query = $this->db->query("SELECT * FROM comments WHERE article_id = $article_id order by last_date asc");
return $query->result();
}
function get_journal_replytocom($id)
{
$query = $this->db->query("SELECT * FROM comments WHERE replytocom = $id order by last_date asc");
return $query->result();
}
之前可能没有描述清楚问题 , 刚刚重新编辑了下帖子 , 哪位大大帮帮小弟吧 ~~~ :'(:'(:'( 先谢过了
function content()
{
$this->load->model('Mhome');
$data['journal_comment'] =$this->Mhome->get_journal_comment($this->uri->segment(3));
$data['journal_replytocom'] = $this->Mhome->get_journal_replytocom($data['journal_comment']);
}
我还是没看明白。。。
我感觉这是 PHP 基础知识,和 CI 无关。 本帖最后由 iyuki0430 于 2010-4-16 11:49 编辑
回复 3# myzingy
function content()
{
$this->load->model('Mhome');
$data['journal_comment'] =$this->Mhome->get_journal_comment($this->uri->segment(3));
$data['journal_replytocom'] = $this->Mhome->get_journal_replytocom($data['journal_comment']);
}
这么写我也试过啊 , 也显示
A Database Error Occurred
Error Number: 1054
Unknown column 'Array' in 'where clause'
SELECT * FROM comments WHERE replytocom = Array order by last_date asc
这个错误 你为什么要给 where 传个数组呢?sql 语句怎么可能支持数组呢?
用 print_r 看一下数组结构,然后用 数组名['key'] 的形式使用。。。。
我建议各位应该大力使用 print_r,无敌的调试工具! 本帖最后由 iyuki0430 于 2010-4-16 16:18 编辑
回复 6# Hex
谢谢hx大大的指点 , 我用print_r输出的结果是stdClass Object类型的数据 , 这个要怎么输出啊 , 数组的方式报错了Fatal error: Cannot use object of type stdClass as array , 能否告诉我一下改怎么输出啊 对象用 -> 呀。。。。。数组才用 []
建议楼主好好看看 PHP 手册,你会提高很快的。 回复 8# Hex
看了php手册,那里好像要用json_decode(),没太看懂,也试了下还是报错.
改成现在这个不报错了,但是还是不对,没有显示结果,好郁闷啊,就传个参数而已,还这么折腾人,闹心死了
function content()
{
$this->load->model('Mhome');
$data['journal_comment'] =$this->Mhome->get_journal_comment($this->uri->segment(3));
foreach ($data['journal_comment'] as $value) {
$id = $value->id;
$data['journal_replytocom'] = $this->Mhome->get_journal_replytocom($id);
}
} 我大概明白你的意思了。
问题出在这里
$data['journal_comment'] = $this->Mhome->get_journal_comment($this->uri->segment(3));
先来看get_journal_comment()这个方法。
这个方法返回的是一个结果集对象。
在控制器中你将这个对象赋值给了$data数组的journal_comment索引。
$data['journal_replytocom'] = $this->Mhome->get_journal_replytocom($data);
而上面这一句你却将$data数组传给了get_journal_replytocom()方法,
在这个方法中你直接将数组放入SQL语句中所以出现了
Unknown column 'Array' in 'where clause'
你现在要弄明白的就是
$query->result();这个对象中的内容。
找到你需要的记录的ID值,然后再传给下一个方法。
多看看手册http://codeigniter.org.cn/user_guide/database/results.html
页:
[1]