Что я должен сделать, чтобы отобразить все данные из 2 или более разных таблиц, я пытаюсь использовать JOIN, но я все еще не понимаю? - PullRequest
0 голосов
/ 17 января 2019

Я плохо разбираюсь в английском, поэтому, пожалуйста, поймите, и это мой первый раз, когда я использую это тоже, большое спасибо ^^

Я хочу показать все данные из базы данных для моего просмотра в CodeIgniter, но проблема в том, что данные, которые я хочу показать в моем представлении, взяты из 2 или более разных таблиц, я пытался использовать JOIN, но я не не понимаю, что это значит. Я успешно показал только 1 таблицу, но я не понимаю, как показать из 2 или более таблиц.

У меня есть 2 таблицы:

  1. data_skm_organisasi Таблица 1
  2. data_skm_kejuaraan Таблица 2

Я хочу показать все данные из 2 таблиц выше

Это мой код для отображения двух или более данных из моих таблиц в базе данных. и его ошибка показа

Контроллер

public function V_home()
{
   $dataOrganisasi = $this->M_main->getSKMorganisasi();  
   $dataSimpanOrganisasi = array();
   $dataSimpanOrganisasi ['organisasi']= $dataOrganisasi;
   $this->load->view('V_mahasiswa',$dataSimpanOrganisasi);
}

модель

function getSKMorganisasi(){
   $query = $this->db->JOIN('data_skm_organisasi','data_skm_kejuaraan');
   $results = $this->db->get();     
   return $query->result_array();
}

вид

<?php foreach ($organisasi as $dataSimpan) { ?>
   <div>
     <?php echo $dataSimpan->Lembaga; ?>
     <?php echo $dataSimpan->tingkatan; ?><br><br>
   </div>
     <?php } ?><br><br>

   <?php foreach ($organisasi as $dataSimpan) { ?>
   <div>
     <?php echo $dataSimpan->jenisKegiatan; ?>
     <?php echo $dataSimpan->tingkatan; ?><br><br>
   </div>
     <?php } ?>

Эта ошибка появляется, когда я пытаюсь запустить

Произошла ошибка базы данных Номер ошибки: 1064

В вашем синтаксисе SQL есть ошибка; проверьте руководство, которое соответствует вашей версии сервера MariaDB для правильного использования синтаксиса около JOIN data_skm_organisasi USING (data_skm_kejuaraan) на линии 2

SELECT * JOIN data_skm_organisasi USING (data_skm_kejuaraan)

Имя файла: C: /xampp/htdocs/Aplikasi_SKM2/system/database/DB_driver.php

Номер строки: 691

1 Ответ

0 голосов
/ 17 января 2019

Один способ, которым вы можете соединить эти 2 таблицы и отобразить все данные в них с помощью JOIN, выглядит следующим образом:

SELECT table1.*, table2.* FROM data_skm_organisasi AS table1
LEFT JOIN data_skm_kejuaraan AS table2 ON table1.namaKegiatan = table2.namaKegiatan AND table1.namaMahasiswa AND table2.namaMahasiswa
ORDER BY table1.id ASC

Это вернет все данные в этих 2 таблицах, которые имеют одинаковые значения для namaMahasiswa и namaKegiatan.

Обратите внимание: если вы используете table1.* и table2.*, возможно, вы не сможете получить доступ ко всем данным, поскольку столбцы будут иметь одно и то же имя, поэтому рекомендуется , чтобы всегда указывать все поля, которые необходимо вернуть, и использовать aliases для полей с одинаковыми именами в обеих таблицах.

Ex. SELECT table1.tingkatan, table2.tingkata AS tingkata2 ....

Но вам действительно следует подумать о добавлении какого-либо условия WHERE в ваш запрос, чтобы не тратить время на загрузку данных, если у вас слишком много записей.

P.S. Это моя лучшая оценка структуры вашей таблицы, так как у вас нет правильной настройки отношений для этих таблиц

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...