Menampilkan Data multi Table di Codeigniter 4 dengan Join
Pada pembuatan sebuah aplikasi pastinya kita tidak lepas yang namanya database dan tabel. Tapi terkadang kita di tuntut untuk menampilkan sebuah data dari tabel satu bergabung dengan tabel dua atau lainnya bisa juga disebut dengan relasi antar tabel.
Pada kesempatan kali ini admin akan membahas sebuah tutorial bagaimana cara menampilkan beberapa data ditabel yang berbeda dengan join di codeigniter 4. Jika kita membuat join data, maka dalam structure tabel satu dengan tabel yang lain mempunyai data primary key yang terhubung dengan foreign key yang nantinya akan membentuk sebuah relasi tabel.
Membuat Database
Untuk membuat database di mysql maka ketikan perintah berikut ini :
create database multi_table;
Setelah database dibuat saatnya kita membuat beberapa tabel beserta isi datanya seperti berikut ini:
Tabel Jurusan
Tabel Kelas
Tabel Siswa
Instalasi Codeighniter 4
Hal pertama yang dilakukan untuk memulai aplikasi yaitu installasi aplikasinya terlebih dahulu, Jika belum paham tentang cara instalasi Codeigniter 4 bisa baca artikel Cara Installasi Codeigniter 4
Membuat Koneksi Database
Membuat Konfigurasi database di codeigniter 4 ada dua cara yaitu cara pertama dengan menggunakan file env (rename menjadi .env) yang ada di folder root project atau dengan file Database.php yang ada di folder app/config dan kali ini admin menggunakan file env untuk koneksi database nya .
database.default.hostname = localhost
database.default.database = ci4_multiTable
database.default.username = root
database.default.password =
database.default.DBDriver = MySQLi
Membuat Model
Buatlah file baru dengan nama Models_siswa.php simpan di folder app/Models kemudian ketikan kode berikut ini :
<?php namespace App\Models;
use CodeIgniter\Model;
class Models_siswa extends Model
{
public function getSiswa()
{
return $this->db->table('siswa')
->join('kelas','kelas.IDKelas=siswa.IDKelas')
->join('jurusan', 'jurusan.IDJurusan=siswa.IDJurusan')
->get()->getResultArray();
}
}
Dari kode diatas kita membuat join tiga tabel dengan konsep relasi. yang nantinya akan dipanggil oleh file controller untuk diteruskan ke file view.
Jika belum paham tentang join bisa baca artikel Mengenal Fungsi Join di Tabel MySQL
Membuat Controller
Kita buat file baru dengan nama Siswa.php kemudian simpan di folder app/Controllers lalu masukan kode berikut ini :
<?php namespace App\Controllers;
use CodeIgniter\Controller;
use App\Models\Models_siswa;
class Siswa extends BaseController
{
public function index()
{
$model = new Models_siswa();
$data['siswa'] = $model->getSiswa();
echo view('view_siswa',$data);
}
}
Dari kode diatas terdapat beberapa kode yang berfungsi untuk memanggil function use (App\Models\Models_siswa; | $model = new Models_siswa(); | $data['siswa'] = $model->getSiswa();) yang ada di model kemudian akan diteruskan ke file views (echo view('view_siswa',$data);).
Membuat View
Buat file baru dengan nama view_siswa.php simpan di folder app/Views kemudian masukan beberapa kode dibawah ini :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Menampilkan Data Multi Join Tabel</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/css/bootstrap.css" rel="stylesheet">
</head>
<body style="width: 70%; margin: 0 auto; padding-top: 30px;">
<div class="row">
<div class="col-lg-12 margin-tb">
<div class="pull-left">
<h2>Menampilkan Data Multi Tabel </h2>
</div>
</div>
</div>
<hr>
<div class="row">
<div class="col-lg-12 margin-tb">
<table class="table table-bordered">
<tr>
<th>No</th>
<th>Nama Siswa</th>
<th>Kelas</th>
<th>Jurusan</th>
</tr>
<?php foreach($siswa as $row):?>
<tr>
<td><?=$row['IDSiswa'];?></td>
<td><?=$row['NamaSiswa'];?></td>
<td><?=$row['NamaKelas'];?></td>
<td><?=$row['NamaJurusan'];?></td>
</tr>
<?php endforeach;?>
</table>
</div>
</div>
</body>
</html>
Kesimpulan
Dari pembahasan diatas kita sudah bisa menampilkan beberapa tabel yang terelasi dengan menggunakan framework codeigniter 4, Tutorial diatas hanya menggunakan relasi tiga tabel jika kita ingin membuat relasi lebih dari tiga maupun kurang dari tiga tabel kita bisa menyesuaikannya,Sedikit tutorial cara menampilkan data multi tabel dengan codeighniter 4 semoga bermanfaat.
muncul ini Call to a member function table() on null
ReplyDeletebisa di lihat lagi untuk fungsi kelas tablenya om di cek lagi skripnya . Apakah pemanggilan file modelnya sudah berhasil belum . .
DeleteIngin mengambil data yang memiliki id siswa 12 gitu gimana?
ReplyDeleteMaksudnya gimana mas ?
Deletekalao jumlah ID siswanya 12 tinggal type data dalam tabel jumlahnya di ambah mas
Maaf mau nanya,koq sy cb msh eror ya?errornya $namajurusan di view
ReplyDeleteDi cek lagi mas apakah field yg ada di database dengan yg di ketik di view sudah sama ?
DeleteBang Kalo tutorial crud multi table ada?
ReplyDeletebelum ada bang
DeleteHalo bang kalau untuk insert data multi table kira-kira seperti apa bang?
ReplyDeletecara nambahi where deleted_at IS NULL gmn ya?
ReplyDelete->where('siswa.deleted_at IS NULL', NULL);
gitu kah?
Skripsine di kerjakan jangan lupa waktu bimbingan siap kan metal buat revisi.
ReplyDeletekalo mau select beberapa kolom aja gimana ya?
ReplyDeleteterus kalo table1 ada kolom "jumlah" terus tble 2 juga kolom "jumlah", itu gimana cara select datanya, jadi nya ambigu, CI nya bingung mau select kolom "jumlah" yg mana?
mohon bantuan nya terimakasih
select tabel1.jumlah, tabel2.jumlah from tabel1, tabel2
Deletekalo pake serverside multiple join table gimana bos?
ReplyDeletejoin table dengan pagination gimana?
ReplyDeleteMakasih untuk scriptnya.. salam dari timor Leste
ReplyDeletePak boleh tidak artikel ini di modifikasi menggunakan paginate ya, saya di CI 4 mentok untuk paging jika menggunakan lebih dari 1 tabel. kalau 1 tabel tidak masalah. di CI 3 juga oke cuma di CI 4 ini mentok saya, mohon berkenan bantu ya. terima kasih
ReplyDeleteshow blank result mas, pas di buka index kosong
ReplyDelete