使用codeigniter和oracle从2个表中获取数据以显示在1个表中

时间:2017-07-26 00:57:12

标签: oracle codeigniter

我想在我的网站上显示一个表,从2表中获取数据是TB_KELUHAN和TB_UNIT。这是控制器的代码

public function index()
{
    $data['TB_KELUHAN']=$this->computer_model->get_all_computers();
    $this->load->view('header');
    $this->load->view('computer_view',$data);
    $this->load->view('footer');
}

型号:

var $table = 'TB_KELUHAN';   

public function get_all_computers()
{
    $this->db->from('TB_KELUHAN');
    $query=$this->db->get();
    return $query->result();
}

观看:

<?php foreach($TB_KELUHAN as $computer){?>
    <tr>
        <td><?php echo $computer->IDKELUHAN; ?></td>
        <td><?php echo $computer->NAMA; ?></td>
        <td><?php echo $computer->IDUNIT; ?></td>
        <td><?php echo $computer->TGL_KELUHAN; ?></td>
        <td><?php echo $computer->ID_JENISKELUHAN; ?></td>
        <td><?php echo $computer->KELUHAN; ?></td>
        <td><?php echo $computer->STATUS; ?></td>
        <td><?php echo $computer->IDPEGAWAI; ?></td>
        <td><?php echo $computer->TGL_SELESAI; ?></td>
    </tr>
<?php }?>

使用下面的TB_UNIT

(   "IDUNIT" NUMBER(10,0) NOT NULL ENABLE, 
"UNIT" VARCHAR2(100 BYTE), 
 CONSTRAINT "TB_UNIT_PK" PRIMARY KEY ("IDUNIT")

TB_KELUHAN

(   "IDKELUHAN" NUMBER(20,0) NOT NULL ENABLE, 
"NAMA" VARCHAR2(10 BYTE), 
"IDUNIT" NUMBER(10,0), 
"TGL_KELUHAN" DATE DEFAULT sysdate, 
"KELUHAN" VARCHAR2(200 BYTE), 
"STATUS" VARCHAR2(10 BYTE), 
"IDPEGAWAI" NUMBER(10,0), 
"TGL_SELESAI" DATE DEFAULT sysdate, 
"ID_JENISKELUHAN" NUMBER(5,0), 
 CONSTRAINT "TB_KELUHAN_PK" PRIMARY KEY ("IDKELUHAN")

我想在我的网站上使用2个表格显示一个表格IDUNIT字段包含来自UNIT的{​​{1}}。但是,来自TB_UNIT的另一个字段。

我已经使用JOIN阅读了,该代码怎么样?谢谢。

1 个答案:

答案 0 :(得分:0)

要在表格TB_UNITTB_KELUHAN之间加入,请执行以下操作:

public function get_all_computers()
{
    $query = $this->db->from('TB_UNIT u')
    ->join('TB_KELUHAN k','k.IDUNIT = u.IDUNIT','left')
    ->get();

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

}

您可以参考此链接获取更多信息: https://www.codeigniter.com/userguide2/database/active_record.html

希望它有所帮助。