【问题标题】:I am having trouble to show all data from two different tables which are having different records我无法显示来自具有不同记录的两个不同表的所有数据
【发布时间】:2019-01-18 09:28:42
【问题描述】:

有关使用 codeigniter 的信息

我有两张桌子:

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

我想将上面 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 } 
?>

我应该如何处理我的代码?我的代码有什么问题吗?

【问题讨论】:

    标签: php html database codeigniter


    【解决方案1】:

    您正在使用普通的$db-&gt;join 命令,这是一个内部连接。这就是为什么您只看到表 B 的行,而表 A 中有相应的行。在您的情况下,您似乎需要外连接,而不是内连接。您可以通过在 join 语句中添加参数来指定它:

    $this->db->join('data_skm_kejuaraan', 'data_skm_kejuaraan.id=data_skm_organisasi.id', 'right outer');
    

    【讨论】:

    • 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以了解在 'OUTER JOIN data_skm_kejuaraan ON data_skm_kejuaraan.id=data_skm_organisas' at line 3 SELECT * FROM data_skm_organisasi` OUTER JOIN data_skm_kejuaraan ON data_skm_kejuaraan.id 附近使用的正确语法=data_skm_organisasi.id
    • 这很奇怪...尝试在您的查询中添加一个附加参数'outer',并且不要更改代码中的任何其他内容...这不能破坏它...
    • 但是当我尝试使用 'right outer' 时它可以工作,但它不适用于我的查询中的'outer'
    • 好的,太好了! MariaDB 似乎不支持正常的“外部”,这就是为什么您需要使用“右外部”。我调整了答案。如果您考虑接受/支持我的回答,如果它可以帮助您解决问题,那就太好了。
    【解决方案2】:

    我认为您使用了错误的列来加入 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');
    

    【讨论】:

    • 感谢您的回答,我的问题已经解决了.. 但另一个问题是mariaDB服务器版本不支持完整的外部
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    相关资源
    最近更新 更多