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

Bra*_*rad 2 php join codeigniter

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

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;
}
Run Code Online (Sandbox Code Playgroud)

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

foreach($comm_control as $row){

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

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

任何帮助,将不胜感激.

Mat*_*ati 6

好的,我认为你需要做的是在comments表中为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;
}
Run Code Online (Sandbox Code Playgroud)

然后你可以将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();
Run Code Online (Sandbox Code Playgroud)

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