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.
任何帮助,将不胜感激.
好的,我认为你需要做的是在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; 当您连接的表都具有相同的列时,就会出现问题; 它变得模棱两可,计算机将无法知道你所引用的内容.