CodeIgniter - 查询数组输出三次而不是一次

时间:2013-05-30 21:09:02

标签: php mysql codeigniter foreach

输出错误,我有三个相同的评论而不是一个。 任何人都可以帮助只做一个评论。

这里我的视图是php代码:

$modelid = "5" ;

$query = $this->db->query('SELECT message FROM message WHERE modelid = '.$modelid.' ');

$row = $query->row(); 

echo $row->message;

和我的表:

http://dev.interactive-creation-works.net/Stack/table.png

控制器:

        class Comment extends CI_Controller
{
    function index()
    {
        $data['result'] = $this->db->get('message')->result();
        $this->load->view('commentView',$data);

    }
    function insert()
    {

     $this->load->model('commentjquery');
     echo $this->commentjquery->inserttodb();
    }
}

2 个答案:

答案 0 :(得分:0)

这个视图应该只显示一条消息,即使你做了 - 无论出于何种原因,无论是否正确 - 从查询中获取三条消息。您可能正在控制器中加载视图三次。尝试在视图的顶部和底部添加一些静态文本,并查看它是否多次显示。

编辑:

现在您已经发布了控制器,我可以看到这不是问题。但我注意到你试图从数据库中获取两次注释 - 一次在控制器中,一次在模型中。控制器中的那个实际上是错误的方法,除非你已经为你的评论实现了ActiveRecord模型,并且你还没有使用结果。 我刚才注意到的另一件事是你正在调用$query->row()而不是在$query->result()上运行foreach。试试这个:

foreach($query->result() as $row) {
    echo $row->message;
}

编辑2:或者可能是问题所在,如果你发布的代码片段不是整个视图,那么情况似乎就是这样。

答案 1 :(得分:0)

你没有得到错误真的很奇怪。当你得到三个输出时,它会更加怪异。

将您的查询更改为此。

$query = $this->db->query('SELECT message FROM message WHERE modelid = "'.$modelid.'"');