我只能从Code Igniter中给定记录的数据库中提取数据。
在我的应用程序中,我有可以向其添加评论的域-一切都淹没了。
我可以添加,编辑,删除域和注释。
但是,当我进入显示的任何域卡时,所有笔记和我只想显示所选域的笔记。
我认为问题出在SQL查询方面-必须比较两个表: domains 表中的 id 和 id_rel_domain 注释表中的“ strong>”。
但是,我不知道如何拥抱它。
我在ALTER TABLE上的 SQL FOREIGN KEY 数据库中具有链接关系:notes.id_domain_rel与domains.id。
我的代码(CodeIgniter)
我的控制器:
public function get($id = false)
{
$result = $this->notes_model->get($id);
echo '{"records":' . json_encode( $result ) . '}';
}
我的模特:
public function get( $id = false)
{
if ( $id == false ) {
$q = $this->db->get('notes');
$q = $q->result();
}
else{
$this->db->where('id', $id);
$q = $this->db->get('notes');
$q = $q->row();
}
return $q;
}
编辑笔记需要第二个条件-因为它获得了它们的ID。 但是,第一个显示所有域的所有注释。
我认为,我必须添加:
$this->db->where('notes.id_domain_rel', $domain.id);
但是,我想念如何做的想法。
获取所有域的数据,而不是我认为的一个域。
答案 0 :(得分:0)
这可能是条件检查的问题。尝试在if语句中使用 === 。或使用 NULL 代替布尔值。
public function get( $id = false)
{
if ( $id === false ) {
$q = $this->db->get('notes')->result();
}
else{
$q = $this->db->where('id', $id)->get('notes')->row();
}
return $q;
}
答案 1 :(得分:0)
问题出在查询的一边,因为我移动的模型引用了注释表。
现在我必须以某种方式从域中提取数据,并将domains.id与notes.id_domain_rel比较
当我输入这样的代码时
public function get( $id = false)
{
if ( $id == false ) {
$this->db->select('*');
$this->db->from('notes');
$this->db->join('domains', 'notes.id_domain_rel = domains.id');
$this->db->where('notes.id_domain_rel', 3);
$q = $this->db->get();
$q = $q->result();
}
else{
$this->db->where('id', $id);
$q = $this->db->get('notes');
$q = $q->row();
}
return $q;
}
我认为必须有这样的东西:
$this->db->where('notes.id_domain_rel', $domainid);
但是,我不知道如何提取$ domainid。