在Codeigniter中显示来自连接的数据

时间:2011-01-15 20:43:25

标签: php codeigniter join

我使用简单的连接从两个数据库中提取数据。这是模型中的连接:

function com_control(){
    $this->db->select('*');
    $this->db->from('comments');
    $this->db->join('posts', 'comments.entry_id = posts.id');
    $query = $this->db->get();
    return $query->result;
}

我想要的显示方法将在一个表格中,所以我开始像这样使用:

foreach($comm_control as $row){

   $this->table->add_row(
   $row->entry_id,
   $row->comments.id,
   $row->comment,
   $row->title             
   );      
}//end of foreach

我的问题是来自comments.id的数据显示。将comment.id添加到表格行的正确格式是什么?我需要来自两个表的ID,以便在表格中进一步显示,编辑和删除。我此时为“comment.id”获得的唯一显示是单词id。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:6)

好的,我认为您需要做的是在评论表中为id字段设置别名:

function com_control() {
    $this->db->select('entry_id, comments.id AS comment_id, comment, title');
    $this->db->from('comments');
    $this->db->join('posts', 'comments.entry_id = posts.id');
    $query = $this->db->get();

    return $query->result;
}

然后您可以将comments.id字段引用为$ row-> comment_id:

$this->table->set_heading('Entry ID', 'Comment ID', 'Comment', 'Title');

foreach ($comm_control as $row ) {
    $this->table->add_row(
        $row->entry_id,
        $row->comment_id,
        $row->comment,
        $row->title             
    );      
}

echo $this->table->generate();

实际上,如果列'id'对于comments表是唯一的,那么你可以使用$ row-> id;当您连接的表都具有相同的列时,就会出现问题;它变得模棱两可,计算机也不会知道你所引用的内容。