Cara Melakukan Join 2 dan 3 Table atau lebih di CodeIgniter dengan Active Record
Join Table CodeIgniter merupakan cara menampilkan data dengan menggabungkan Table-table Databse yang memiliki Id Primary key yang sama atau Foreign Key nya.
Untuk menampilkan Data dengan join perlu kita membuat Table-tablenya terlebih dahulu atau mungkin sudah mempunyai dan sedang mencari cara Bagaimana membuat atau menampilkan data dengan menggabungkan 2 Table atau lebih di CodeIgniter, bisa menggunakan Active Record atau tidak.
Baca : Cara membuat Databse di PhpMyaAdmin Xampp
Okeh langsung saja disini saya menggunakan Query Bulider Khas CcodeIgniter bukan Prosedural yoh..^_^..
Berikut saya sudah siapkan Table-Table nya :
Dari table-table diatas :
Dengan mempuyai Id yang sama yaitu Id(tbrakyat) = Id(tbsekolah) dan Idpendidikan(tbsekolah) = Idpendidikan(tbstatus)
Di sini saya akan menampilkan Join 2 Table terlebih dahulu, Kita langsung saja untuk membuat model, Controler dan Viewnya, untuk settingan dasar seperti Config, route, database bisa kalian cara i Google sendiri ^_^ ...
untuk code view nya dengan nama nong.php sebagai berikut :
Dan untuk Controller dengan nama cung.php sebagai berikut :
Untuk modelnya dengan nama mjoin.php sebagai berikut :
Dan ini hasil tampilan dari Join Query CodeIgniter 2 Table yaitu tbrakyat dan tbsekolah
Dan Bagaiman untuk melakukan Join 3 Table atau lebih menggunakan Active recordnya misal kita contoh menampilkan data dengan nama Edi kita set nanti Active Recordnya di Model ditambahkan Query Where,..
Untuk menampilkan Data dengan join perlu kita membuat Table-tablenya terlebih dahulu atau mungkin sudah mempunyai dan sedang mencari cara Bagaimana membuat atau menampilkan data dengan menggabungkan 2 Table atau lebih di CodeIgniter, bisa menggunakan Active Record atau tidak.
Baca : Cara membuat Databse di PhpMyaAdmin Xampp
Okeh langsung saja disini saya menggunakan Query Bulider Khas CcodeIgniter bukan Prosedural yoh..^_^..
Berikut saya sudah siapkan Table-Table nya :
Table tbrakyat |
Table tbsekolah |
Table tbstatus |
Dengan mempuyai Id yang sama yaitu Id(tbrakyat) = Id(tbsekolah) dan Idpendidikan(tbsekolah) = Idpendidikan(tbstatus)
Di sini saya akan menampilkan Join 2 Table terlebih dahulu, Kita langsung saja untuk membuat model, Controler dan Viewnya, untuk settingan dasar seperti Config, route, database bisa kalian cara i Google sendiri ^_^ ...
untuk code view nya dengan nama nong.php sebagai berikut :
<!DOCTYPE html> <html> <head> <title><?php echo $title;?></title> <style> table { font-family: arial, sans-serif; border-collapse: collapse; width: 100%; } td, th { border: 1px solid #dddddd; text-align: left; padding: 8px; } tr:nth-child(even) { background-color: #dddddd; } </style> </head> <body> <label><h2><b>Join 2 Table CodeIgniter</b></h2></label> <table> <tr> <th>No.</th> <th>Nama</th> <th>Alamat</th> <th>Sekolah</th> </tr> <?php $no=1; foreach ($join2 as $row) { ?> <tr> <td><?php echo $no++;?></td> <td><?php echo $row->nama;?></td> <td><?php echo $row->alamat;?></td> <td><?php echo $row->pendidikan;?></td> </tr> <?php } ?> </table> </body> </html>
Dan untuk Controller dengan nama cung.php sebagai berikut :
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Cung extends CI_Controller { function __construct() { parent::__construct(); $this->load->model('mjoin', '', TRUE); $this->load->helper(array('form', 'url')); } public function index() { $data['title'] = "Join CodeIgniter"; // query memanggil function duatable di model $data['join2'] = $this->mjoin->duatable(); $this->load->view('nong',$data); } }
Untuk modelnya dengan nama mjoin.php sebagai berikut :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Mjoin extends CI_Model { public function duatable() { $this->db->select('*'); $this->db->from('tbrakyat'); $this->db->join('tbsekolah','tbsekolah.id=tbrakyat.id'); $query = $this->db->get(); return $query->result(); } } /* End of file model_keuangan.php */ /* Location: ./application/model/model_keuangan.php */
Join 2 Table MySQL CodeIgniter |
Dan Bagaiman untuk melakukan Join 3 Table atau lebih menggunakan Active recordnya misal kita contoh menampilkan data dengan nama Edi kita set nanti Active Recordnya di Model ditambahkan Query Where,..
Okeh langsung saja dan untuk coding Viewnya di tambah field sedikit
<!DOCTYPE html> <html> <head> <title><?php echo $title;?></title> <style> table { font-family: arial, sans-serif; border-collapse: collapse; width: 100%; } td, th { border: 1px solid #dddddd; text-align: left; padding: 8px; } tr:nth-child(even) { background-color: #dddddd; } </style> </head> <body> <label><h2><b>Join 3 Table CodeIgniter Active Record <?php echo $nama;?></b></h2></label> <table> <tr> <th>No.</th> <th>Nama</th> <th>Alamat</th> <th>Sekolah</th> <th>Status</th> </tr> <?php $no=1; foreach ($join3 as $row) { ?> <tr> <td><?php echo $no++;?></td> <td><?php echo $row->nama;?></td> <td><?php echo $row->alamat;?></td> <td><?php echo $row->pendidikan;?></td> <td><?php echo $row->status;?></td> </tr> <?php } ?> </table> </body> </html>
Dan ini Untuk Coding Controllernya hampir sama kaya tadi tapi disini kita mengirim variable untuk diterapkan di Query Where
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Cung extends CI_Controller { function __construct() { parent::__construct(); $this->load->model('mjoin', '', TRUE); $this->load->helper(array('form', 'url')); } public function index() { //passing data controller ke view $data['nama'] = "Edi"; $data['title'] = "Join CodeIgniter"; //active record dengan nama edi $aktif = array('nama'=>'Edi'); // query memanggil function tigatable di model $data['join3'] = $this->mjoin->tigatable($aktif); $this->load->view('nong',$data); } }
Untuk Modelnya sebagai berikut :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Mjoin extends CI_Model { public function tigatable($aktif) { $this->db->select('*'); $this->db->from('tbrakyat'); $this->db->join('tbsekolah','tbsekolah.id=tbrakyat.id'); $this->db->join('tbstatus','tbstatus.idpendidikan=tbsekolah.idpendidikan'); $this->db->where($aktif); $query = $this->db->get(); return $query->result(); } } /* End of file model_keuangan.php */ /* Location: ./application/model/model_keuangan.php */
Dan Berikut Hasil tampilan Active Record Join 3 Table di CodeIgniter, Gimana mudah dan simple kan...
Join 3 Table Active Record CodeIgniter |
Okeh Terima kasih Demikian Tutorial cara menampilkan data, menggabungkan dengan Join Query 2 dan 3 atau lebih dengan Active Record di CodeIgniter.
makasih,..,.,.ckup,.,membantu,.,.jika pinginnya active recordnya user yang sedang login,.,.kira-kira modifikasinya di bagian mana>???maaf masih belajar,.,.
ReplyDeletetinggal kasih $this->db->where();
ReplyDeletemakasi banget... sangat membantu...
ReplyDeletehttps://stackoverflow.com/questions/52037820/result-data-from-multiple-table-codeigniter
ReplyDeleteTolong bantu Gan..
Coba ni gan, kira-kira begitu,
Deletepublic function show_data_by_tid_pic($postid,$postpic) {
$active = array ('tid'=>$postid,'nama'=>$postpic);
$this->db->select('*');
$this->db->from('otslm');
$this->db->join('pic', 'pic.id = otslm.id');
$this->db->where($active);
$query = $this->db->get();
if ($query->num_rows() > 0) {
return $query->result(); } else {
return false;
}
}
kalau salah, saya harus liat struktur table yang di join dulu..
gan kalau ada left joinnya gmna
Deletegan kalau ada left joinnya gmna
Deletetinggal tambahkan keterangan left or right bagian
Delete$this->db->join('pic', 'pic.id = otslm.id');
jadi hasilnya
$this->db->join('pic', 'pic.id = otslm.id','left');
Makasih bro tutorialnya. Sangat membantu
ReplyDeleteyah sama-sama terimakasih sudah mampir
DeleteTerimakasih ,sangat membatu sekali
ReplyDeletemenampilkan last row pada group_by, caranya gimana ya.. terima kasih..
ReplyDelete$this->db->group_by('parameter yang di set berdasarkan nama field table');
Deletecoba ini gan
ReplyDelete$this->db->select('*');
$this->db->from('tablename1');
$this->db->order_by('table1Id','DESC');
$subquery = $this->db->get_compiled_select();
$this->db->select('*');
$this->db->from('('.$subquery.') a');
$this->db->join('tablename2', 'tablename2.tagid= a.tagid', 'left');
$this->db->group_by('a.tagId, tablename2.tagId');
$this->db->order_by('a.tagId','asc');
bang, kalau inputnya berlerasi antar tabel bagaimana ya?
ReplyDeletetinggal pake multi insert,
Deletequery insert table pertama, dan query insert table selanjutnya
penulisan di modelnya bagaimana ya ?
ReplyDeletemaaf masih newbie
https://www.codeigniter.com/userguide3/database/query_builder.html#inserting-data
ReplyDeletecek sini kaka
bang kalau ngambil data dari 3 tabel yg relasi bagaimana ya?
ReplyDeleteselect plus join query seperti diatas..
ReplyDeletebang bisa minta tolong solusinya ga ya?
DeleteA Database Error Occurred
Error Number: 1054
Unknown column 'c.merk' in 'field list'
SELECT d.*, a.kategori, b.sub_kategori, c.merk FROM produk d LEFT JOIN kategori a ON(d.id_kategori = a.id_kategori) LEFT JOIN sub_kategori b ON(d.id_sub_kategori = b.id_sub_kategori) LEFT JOIN merk c ON(d.id_merk = c.id_merk)order by id_produk desc
Filename: C:/xampp/htdocs/prototype/MoreAps16/system/database/DB_driver.php
Line Number: 691
modelnya
public function GetProdukKatMerko($where= "") {
$data = $this->db->query('SELECT d.*, a.kategori, b.sub_kategori, c.merk
FROM produk d
LEFT JOIN kategori a
ON(d.id_kategori = a.id_kategori)
LEFT JOIN sub_kategori b
ON(d.id_sub_kategori = b.id_sub_kategori)
LEFT JOIN merk c
ON(d.id_merk = c.id_merk)'.$where);
return $data;
}
pake yang query builder ajah... om jangan procedural.. gimana
ReplyDeletewaduh...ternyata langsung nancep si abang satu ini. wkwkwwk
Deletelgi dapet tugas kampus om, suruh pake teknik procedural, ya..bagaimana ya, tugas kerlompok kerjain sendiri. mana susah juga lagi tugas nya buat diselesein. engga ada pula yang bantu, jadi saya...cari-cari diinternet bala bantuan hahahaha
gan kalo ane kan sudah join table tapi dari table 1 itu mau ditampilin 2 colom ke table 2 nah ane bingungnya itu cara manggil di viewnya gimana ya
ReplyDeletepake query result om...
ReplyDeleteom mau tanya tapi di luar topic, kalau misalnya data kita katakanlah ada 50.000 bagaimana caranya tangani data sebanyak itu ?
ReplyDelete#codeigniter ya om hehehe.
makasih om
maksudnya tangani bagimana om...ada problem dengan data 50.000 atau gimana om...
Deleteterima kasih sudah mampir
itu $join2 darimana ???
ReplyDelete$data['join2'] tu variable array tuk pasing data, ke view
Deletemas..mau nanya?
ReplyDeletekalau mau ngambil id dari tabel lain bagaimana ya?
maksudnya detailnya giaman om...
Deletesecara umum untuk data ambil dengan id tertentu tambahkan query where saja
bang menghubungkan 2 table ke login dengan id yang berbeda ??
ReplyDeleteharus ada yang sama dalam 1 fieldnya om.. kalau mau join query, kalau beda tidak di laukan join,
DeletePermisi kalo misalnya kita panggil id tabel satu tapi mencakup juga data tabel 2 itu pakenya apa yah trimakasih
ReplyDeletedi join dengan id yang sama isi field nya antar table
Deletemohon bantu gan..
ReplyDeletecara join tabel dari 2 database di codeiginiter
belum pernah coba databse yang beda om. sorry... nanti kalau coba bisa tak bikin threadnya
Deleteterimakasih mas sangat membantu
ReplyDeleteKalau banyak yang mau digabung gimana carana
ReplyDeletebang kalau misalkan ada error di view nya, dimana variable $join2 tidak terdefinisi itu bagaimana ya?
ReplyDeletemau nanya kalau yang muncul datanya jadi double itu masalahnya apa ya?
ReplyDeletebang tolong dong klo ky begini salahnya di mana...
ReplyDeleteError Number: 1103
Incorrect table name 'user_menu '
SELECT `user_menu`.`id`, `menu`.* FROM `user_menu ` JOIN `user_access_menu` ON `user_menu`.`id `= `user_access_menu`.`menu_id ` WHERE `user_access_menu`.`role_id` = '2' ORDER BY `user_access_menu`.`menu_id` ASC