有关使用Codeigniter的信息
我有两个表:
我想显示上面有2个表的记录 但在我看来,它仅显示4条记录。
即使表B中有5条记录,它也只显示4条记录
这是我的代码:
型号
function getAlldata(){
$this->db->select('*');
$this->db->from('data_skm_organisasi');
$this->db- >JOIN('data_skm_kejuaraan','data_skm_kejuaraan.id=data_skm_organisasi.id');
$results = $this->db->get();
return $results->result();
}
控制器
public function V_home()
{
$dataSimpanOrganisasi = array();
$dataSimpanOrganisasi ['organisasi']= $this->M_main->getAlldata(); ;
$this->load->view('V_mahasiswa',$dataSimpanOrganisasi);
}
视图
<?php foreach ($organisasi as $dataSimpan) { ?>
<div>
<?php echo $dataSimpan->Lembaga; ?>
<?php echo $dataSimpan->tingkatan_O; ?><br><br>
</div>
<?php }
?><br><br>
<?php foreach ($organisasi as $dataSimpan) { ?>
<div>
<?php echo $dataSimpan->jenisKegiatan; ?>
<?php echo $dataSimpan->tingkatan; ?><br><br>
</div>
<?php }
?>
我应该对我的代码做什么?我的代码有问题吗?
答案 0 :(得分:0)
您正在使用普通的$db->join
命令,这是一个内部联接。这就是为什么当表A中有对应的行时,您只看到表B的行的原因。在您的情况下,似乎您需要一个外部联接,而不是一个内部联接。您可以通过在连接语句中添加参数来指定它:
$this->db->join('data_skm_kejuaraan', 'data_skm_kejuaraan.id=data_skm_organisasi.id', 'right outer');
答案 1 :(得分:0)
我认为您在data_skm_kejuaraan
表上使用了错误的列。尝试更改:
$this->db->JOIN('data_skm_kejuaraan','data_skm_kejuaraan.id=data_skm_organisasi.id');
到
$this->db->JOIN('data_skm_kejuaraan','data_skm_kejuaraan.id_juara=data_skm_organisasi.id');