Cara Menggabungkan Dua Tabel Atau Lebih Pada PHP MySQL
Penggabungan antara dua tabel sangatlah perlu, agar relationship dapat bekerja, berikut adalah cara penggabungan dua atau lebih tabel pada Bahasa Pemrograman PHP dan MySQL.
Contoh tabel user |
Pada contoh kali ini, saya akan mempraktikan cara menggabungkan data siswa dengan data user yang sudah memiliki relasi dengan menggunakan perintah SQL Inner Join.
Pertama, buat dahulu databasenya, kita beri saja nama ‘db’, kemudian eksekusi query berikut pada MySql:
CREATE TABLE IF NOT EXISTS `tblsiswa` (
`NIS` varchar(15) NOT NULL,
`Nama` varchar(30) NOT NULL,
`Alamat` text NOT NULL,
PRIMARY KEY (`NIS`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Kemudian kita buat juga tabel usernya, eksekusi query berikut:
CREATE TABLE IF NOT EXISTS `tbluser` (
`Id` int(5) NOT NULL AUTO_INCREMENT,
`Username` varchar(15) NOT NULL,
`Password` varchar(15) NOT NULL,
`NIS` varchar(15) NOT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
Nah, sekarang kita isi tabelnya dengan mengeksekusi perintah INSERT ke dalam tabel user, gunakan query berikut:
INSERT INTO `tbluser` (`Id`, `Username`, `Password`, `NIS`) VALUES
(1, 'alvian', 'alvian', '11265');
Jangan lupa masukkan data ke tabel siswa, gunakan query yg ini:
INSERT INTO `tblsiswa` (`NIS`, `Nama`, `Alamat`) VALUES
('11265', 'Alvian', 'Banjarnegara');
Setelah selesai, sekarang buat file php kemudian masukkan kode skrip dibawah ini:
<?php
$server = "localhost";
$username = "root";
$password = "";
$database = "db";
mysql_connect($server,$username,$password) or die("Koneksi gagal");
mysql_select_db($database) or die("Database tidak bisa dibuka");
$Query = mysql_query("SELECT * FROM tbluser
INNER JOIN tblsiswa
ON tblsiswa.NIS = tbluser.NIS");
$RecordSet = mysql_fetch_array($Query);
echo "Profil: <br><br>";
echo "NIS: $RecordSet[NIS]<br>";
echo "Username: $RecordSet[Username]<br>";
echo "Password: $RecordSet[Password]<br>";
echo "Nama: $RecordSet[Nama]<br>";
echo "Alamat: $RecordSet[Alamat]<br>";
?>
Setelah itu coba dibuka melalui browser, maka tabel siswa dan tabel user akan menyatu dan sudah menjadi kesatuan baris data yang padahal mereka ada di tabel yang berbeda.
Hasil gabungan tabel 1 dan 2 |
Sedangkan untuk menggabungkan tiga tabel kita cukup menambah perintah inner join lagi pada variabel Query yang ada pada sintaks PHP, contohnya begini:
SELECT * FROM tbluser
INNER JOIN tblsiswa
ON tblsiswa.NIS = tbluser.NIS
INNER JOIN blabla
ON blabla.bla = blabla.bla
begitu pun seterusnya bila kita memerlukan penggabungan lebih dari 3 tabel, maka kita cukup tambahkan perintah inner join dibawahnya lagi
maksih ya mas sangat membantu
ReplyDeleteIya mbak, sukses selalu. :)
ReplyDeletemass klo mau inptu dat kedalam tiga tabel qurynyq apa mass mohon bantuannya
ReplyDeletemisalnya tabel itu namanya 'level' ya mas, tinggal kita tambahkan skrip dibawahnya jd spt ini:
DeleteSELECT * FROM tbluser
INNER JOIN tblsiswa
ON tblsiswa.NIS = tbluser.NIS
INNER JOIN level
ON tbluser.ID = level.userID
Mas juragan kalau buat categori dan content berita pada tabel yang berbeda gimana ya? sya menggunakan dreamweaver...
ReplyDeletebisa bantu di cerahkan??
thks
Buat dulu tabel kategori dan tabel kontennya gan. Setelah itu buat koneksi database, buat dua halaman berbeda katakanlah 'category.php' dan 'content.php'. Trus tinggal kita lakukan 'eksekusi query' di halaman 'category.php' pada tabel kategori dan halaman 'content.php' pada tabel konten. Selebihnya tinggal di atur sendiri. Semoga membantu :)
Deletetanya mas,, kalo join lbh dari 2 tabel tapi wherenya berdasarkan session,
ReplyDeleteMisal nama sessionnya = 'nil'
DeleteSELECT * FROM tbluser // tabel user
INNER JOIN tblsiswa
ON tblsiswa.NIS = tbluser.NIS // join ke tabel siswa
INNER JOIN nilai
ON nilai.kd_nilai = tblsiswa.kd_nilai //join ke tabel nilai
WHERE nilai.kd_nilai ='$_SESSION[nil]'
bagus banget mas. thngky
ReplyDeleteSenang bisa membantu anda
ReplyDeletegan kalo nginputnya pake form trs codingannya gmana? apa di gabungin perintah insertnya?
ReplyDeleteGunakan metode penginsertan biasa aja gan.
DeleteMisal anda ingin menginputkan data berikut:
NIS: 11000
Username: edi
Password: edi
Nama: Edi
Alamat: Cirebon
Tinggal gunakan query secara berkala gan
Masukkan tbluser-nya terlebih dahulu:
INSERT INTO `tbluser` (`Id` ,`Username` ,`Password` ,`NIS`) VALUES ('0091', 'edi', 'edi', '11000');
Baru masukkan tblsiswa-nya:
INSERT INTO `tblsiswa` (`NIS`, `Nama`, `Alamat`) VALUES ('11000', 'Edi Suyitno', 'Cirebon');
Secara otomatis data yang diinputkan diatas akan saling berkorelasi karena memiliki NIS yang sama
ini knp ya mas?
ReplyDeleteWarning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\tes\view pemesanan.php on line 39
Kemungkinan ada kesalahan di sintaks query ke tabel-nya Mba. Coba dicek lagi yah. Atau tulis disini sintaks query kamu.
DeleteGan mau tanya, kalau misalnya saya punta data di tabel1 id, nama, alamat, telp. Di tabel2 antrian, id, nama, telp.
ReplyDeleteJadi alurnya si halaman akan cari data dulu di tabel1, begitu tabelnya keluar, nanti ada tombol daftar. Nah bisa ga yah ketika klik tombol daftar itu otomatis langsung input ke tabel2? Mohon pencerahannya gan, deadline tugas akhir minggu depan:((
makasih bro... sempat bingung tadi soalnya ane belum pernah nyoba lebih dari 2 dan setelah saya coba di coding saya ternyata bisa. sukses selalu... doain skripsi gw kelar ya.. hehehehe
ReplyDeleteNyasar disini
ReplyDeleteTp dapet ilmu
Maksih share nya
misalkan input namanya sama antara tabel satu dan dua .apakah bisa?
ReplyDeletecontoh ditabel 1 ada yang namanya "username" dan di tabel 2 ada juga yang namanya "username" , untuk nampilin, bagaimana kodenya?
gunakan aja:
DeleteSELECT `tabel1`.`username` as `username1`, `tabel2`.`username` as `username2, *
FROM `tabel1`
INNER JOIN `tabel2`
ON `tabel1`.`username` = `tabel2`.`username`
This comment has been removed by the author.
ReplyDeletehow can i update multiple table into one new table?
ReplyDeleteYou can update them per table once by once. You don't even need to use JOIN clause.
Deletemaz vian saya mao nanya inner join bisa di bikin buat tabel tracker gak?? maksud nya gini saya mau melacak sebuah PC yang di gunakan oleh orang lain nah tabel nya itu beda ada tabel data user dan tabel data CPU misal nya saya mau mencari komputer 01 nah di pencarian hasil nya akan keluar 01 user nama PC serial dan ssebagainya nah itu pakai inner join atau apa yah maaf kalau rada OOT mohon pencerahan nya thx
ReplyDeleteartikel yang bagus...!!!!
ReplyDeletemas kalau seandanya saya menampilkan data di tabel satu dan dua tetapi data di tabel dua ditampilkan 2..
ReplyDeleteContoh.
Tabel 1.NIP, Nama , Alamat
Tabel 2. Jenis Kelamin, Umur , Tempat Tinggal
yang mau di tampilkan:
NIP, Nama, Jenis Kelamin, Umur, Tempat Tinggal
Penggunaan join untuk skrip login bagaimna ya ??
ReplyDeleteSaya punya tabel admin, mahasiswa, dosen, staff yg masing2 berisi identitas dn username+paswordnya dn levelnya user. Saya penggunakan login multiuser (admin dn user) pengambilan username dn paswordnya dari 4 tabel yg terpisah itu bagaimna?? Terimakasih
https://stackoverflow.com/questions/52037820/result-data-from-multiple-table-codeigniter
ReplyDeleteTolong bantu jawab gan.. Makasih
assalamualaikum
ReplyDeletesaya ingin minta bantuan
saya ingin nama kecamatan yang ada di tb desa ditampilkan di tb penanganan bagaimana cara merelasikannya
dan nama kecamatan itu relasi ke tb desa
DeleteAssalamualaikum
ReplyDeleteKeren sekali bang,setelah membaca artikel abang saya jadi paham dan banyak dapet ilmu dan ternyata setelah saya praktekin codingannya jadi. Sukses Selalu bang,terimakasih sudah membantu saya jadi mendapat ilmu setelah berkunjung ke artikel abang ini. Kenalkan Saya Fariz Al Faiq, dari STMIK ATMA LUHUR. Dan jangan lupa kunjungi website kampus kita ya bang (https://www.atmaluhur.ac.id/)
haiii Kak salken yahh, keren banget artikelnya aku jadi lebih ngerti buat belajar codingan di artikel ini dan sangat membantu juga bgi para pelajar yg pengen bljr untuk menggabungkan data lebih dri satu tabel. Sukses terus kak jangan kapok utk update artikel terbaru. Semoga bermanfaat, oh ya kenalin nama aku Sekar Widya Lestari Dari STMIK ATMA LUHUR. Jangan Lula kunjungi juga website kampus Kita (https://www.atmaluhur.ac.id/)
ReplyDeletevisit this link
ReplyDeletehttps://jatimtimes.com
https://malangtimes.com
https://jatimtimes.com/baca/239289/20210408/191500/polisi-segera-gelar-perkara-kasus-pencabulan-yang-libatkan-dosen-unej