【问题标题】:Codeigniter Three Table Join, displaying image problemCodeigniter 三表连接,显示图片问题
【发布时间】:2019-08-07 08:16:48
【问题描述】:

我正在使用 CodeIgniter PHP 框架和 MySQL 作为数据库。我想显示房间的具体平面图(img)也显示没有房间的建筑物。

我有 3 张桌子:

tblbldg - 建筑

  • id (pk)
  • 姓名

tblroom - 房间

  • 身份证
  • 姓名
  • 地板
  • building_id (fk)

tblfloorplan - 平面图

  • 身份证
  • 地板
  • building_id (fk)
  • img

我尝试了这段代码,但它最终混合了 img,比如 building1 floor1 显示与 building 2 floor1 相同的平面图:

public function get_rooms(){
    $this->db->select('tblroom.id,
        tblroom.name,
        tblroom.floor,
        tblbldg.name as building_name,
        tblfloorplan.img');
    $this->db->from('tblroom');
    $this->db->join('tblbldg',"tblbldg.id = tblroom.building_id");
    $this->db->join('tblfloorplan',"tblfloorplan.floor = tblroom.floor");
    return $this->db->get();
}

【问题讨论】:

  • 你能告诉我们你的数据库输出期望吗?

标签: php mysql database codeigniter frameworks


【解决方案1】:

试试这个,

public function get_rooms(){
       $this->db->select('tblroom.id,
            tblroom.name,
            tblroom.floor,
            tblbldg.name as building_name,
            tblfloorplan.img');
        $this->db->from('tblroom');
        $this->db->join('tblbldg',"tblbldg.id = tblroom.building_id");
        $this->db->join('tblfloorplan',"tblbldg.id = tblfloorplan.building_id and tblfloorplan.floor = tblroom.floor");
        return $this->db->get();
    }

【讨论】:

  • 谢谢先生,它有效! ..你能帮我吗,我想显示没有房间和平面图的建筑物,因为查询只显示有房间和平面图的房间..
  • 你确定,你现在有这个查询吗?
  • 是的,先生,它工作得很好,我关于平面图 img 混合的问题解决了。
猜你喜欢
  • 1970-01-01
  • 2015-03-09
  • 1970-01-01
  • 2011-06-07
  • 2015-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多