使用codeigniter加入3个表并显示它

问题描述 投票:0回答:2

我想创建一个连接数据库。在“关系”表中将显示“疾病”,可以添加许多“症状”。我该怎么办?

这是我的数据库:

疾病:id_disease,名称,详情 症状:id_symptoms,名称,详细信息 relation:id_relation,id_disease,id_symptoms

这是我的模特

function get_allrelation() {
    $this->db->select('*');
    $this->db->from('relation');
    $this->db->join('disease','disease.id_disease = relastion.id_disease','left');
    $this->db->join('symptoms','symptoms.id_symptoms= relation.id_symptoms','left');

    $query = $this->db->get();
        return $query->result();
    }
}

请帮我。

php mysql codeigniter join
2个回答
0
投票

下面的控制器仅在选择$this->db->select('relation.*, disease.*, symptoms.*');中的示例

在控制器上,您可以将数据传递给视图,在视图中创建一个foreach循环。

<?php

class Somecontroller extends CI_Controller {

    public function index() {

        $data['allrelation'] = $this->allrelation();


        $this->load->view('example', $data);

    }

    function get_allrelation() {
        $this->db->select('relation.*, disease.*, symptoms.*');
        $this->db->from('relation');
        $this->db->join('disease','disease.id_disease = relastion.id_disease','left');
        $this->db->join('symptoms','symptoms.id_symptoms = relation.id_symptoms','left');

        $query = $this->db->get();

        if ($query->num_rows() > 0) {
            return $query->result();
        }

        return false
    }

}

1
投票

你有一个错字:而不是关系你有relastion.id_disease。

以下代码应该有效

function get_allrelation() {
  $this->db->select('*');
  $this->db->from('relation');
  $this->db->join('disease','disease.id_disease = relation.id_disease','left');
  $this->db->join('symptoms','symptoms.id_symptoms= relation.id_symptoms','left');

  $query = $this->db->get();
  return $query->result();
}
© www.soinside.com 2019 - 2024. All rights reserved.