我无法显示来自具有不同记录的两个不同表中的所有数据

时间:2019-01-18 09:28:42

标签: php html database codeigniter

有关使用Codeigniter的信息

我有两个表:

  
      
  1. 表A有4条记录picture 1
  2.   
  3. 表B有5条记录picutre 2
  4.   

我想显示上面有2个表的记录 但在我看来,它仅显示4条记录。

  1. 表A中的4条记录
  2. 表B的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 } 
?>

我应该对我的代码做什么?我的代码有问题吗?

2 个答案:

答案 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');