首页 > 解决方案 > 数据库 Codeigniter 查询

问题描述

我在从数据库中仅针对 Code Igniter 中的给定记录提取数据时遇到问题。

在我的应用程序中,我有可以添加评论的域 - 一切都不堪重负。

我可以添加、编辑、删除域和注释。

但是,当我踩到出现的任何域卡时,所有注释,我只想显示所选域的注释。

我认为问题出在 SQL 查询方面——它必须比较两个表:来自 domain 表的id来自notes 表的id_rel_domain

但是,我不知道如何接受它。

在 ALTER TABLE数据库的 SQL FOREIGN KEY 中有一个链接关系:notes.id_domain_rel 与 domain.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);

但是,我想念如何去做。

获取所有域的数据,而不是我查看的域的数据。

标签: phpcodeigniter-3

解决方案


这可能是条件检查的问题。尝试在 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;
        }

推荐阅读