Menampilkan data dari 3 tabel yang berbeda dengan PHP

Belajar PHP - Cara menampilkan data dari 3 tabel yang berbeda dengan menggunakan PHP. Pada tutorial kali ini kita akan menggabungkan 3 table yang berbeda dan kemudian menampilkannya dalam tabel.

Disini saya sudah buat database dengan nama "ex" dan 3 tabel didalamnya dengan nama tb_siswa, tb_jurusan dan tb_spp.

Struktur pada masing - masing tabel adalah sebagai berikut:
Data pada masing - masing tabel:

tb_jurrusan
tb_spp
tb_siswa

Atau kalian bisa buat databasenya lalu pastekan kode berikut pada menu SQL. Maka hasilnya akan sama seperti gambar diatas.
--
-- Database: `ex`
--

-- --------------------------------------------------------

--
-- Table structure for table `tb_jurusan`
--

CREATE TABLE `tb_jurusan` (
  `id_jurusan` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
  `nama_jurusan` varchar(5) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Dumping data for table `tb_jurusan`
--

INSERT INTO `tb_jurusan` (`id_jurusan`, `nama_jurusan`) VALUES
(1, 'RPL'),
(2, 'MM'),
(3, 'TKRO'),
(4, 'AP');

-- --------------------------------------------------------

--
-- Table structure for table `tb_siswa`
--

CREATE TABLE `tb_siswa` (
  `id_siswa` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
  `nama` varchar(50) NOT NULL,
  `kelas` varchar(2) NOT NULL,
  `id_jurusan` int(11) NOT NULL,
  `id_spp` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Dumping data for table `tb_siswa`
--

INSERT INTO `tb_siswa` (`id_siswa`, `nama`, `kelas`, `id_jurusan`, `id_spp`) VALUES
(1, 'si A', 'X', 1, 3),
(2, 'si B', 'XI', 2, 2),
(3, 'si C', 'XI', 3, 1),
(4, 'si D', 'XI', 4, 1);

-- --------------------------------------------------------

--
-- Table structure for table `tb_spp`
--

CREATE TABLE `tb_spp` (
  `id_spp` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
  `tahun` int(11) NOT NULL,
  `nominal` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Dumping data for table `tb_spp`
--

INSERT INTO `tb_spp` (`id_spp`, `tahun`, `nominal`) VALUES
(1, 2018, 140000),
(2, 2019, 150000),
(3, 2020, 155000);

Lalu buka text editor kalian, dan buat file dengan nama join-table.php, berikut kodenya:

join-table.php

<?php

$conn = new mysqli('localhost', 'root', '', 'ex');

if (mysqli_connect_errno($conn)) {
 echo "Koneksi gagal " . mysqli_connect_error();
}
?>

<!DOCTYPE html>
<html>
<head>
 <title>Join Table</title>
</head>
<body>

 <table border="1">
  <tr>
   <td>No.</td>
   <td>Nama</td>
   <td>Kelas</td>
   <td>Jurusan</td>
   <td>Tahun</td>
   <td>Nominal</td>
  </tr>
  
  <?php

  $query = mysqli_query($conn, "SELECT * FROM tb_siswa INNER JOIN tb_jurusan ON tb_siswa.id_jurusan = tb_jurusan.id_jurusan INNER JOIN tb_spp ON tb_siswa.id_spp = tb_spp.id_spp");

  $no = 1;
  foreach ($query as $row) :
   ?>

   <tr>
    <td><?= $no++; ?></td>
    <td><?= $row['nama']; ?></td>
    <td><?= $row['kelas']; ?></td> 
    <td><?= $row['nama_jurusan']; ?></td>
    <td><?= $row['tahun']; ?></td>
    <td><?= $row['nominal']; ?></td>
   </tr>

  <?php endforeach; ?>

 </table>
</body>
</html>

Penjelasan:

$conn = new mysqli('localhost', 'root', '', 'ex');

if (mysqli_connect_errno($conn)) {
 echo "Koneksi gagal " . mysqli_connect_error();
}

Kode untuk koneksi ke database "ex". Akan menampilkan pesan kesalahan apabila koneksi yang dibuat salah.
$query = mysqli_query($conn, "SELECT * FROM tb_siswa INNER JOIN tb_jurusan ON tb_siswa.id_jurusan = tb_jurusan.id_jurusan INNER JOIN tb_spp ON tb_siswa.id_spp = tb_spp.id_spp");

Perintah untuk mengambil data yang sudah digabungkan menggunakan fungsi INNER JOIN.

Output:


Kolom Nama, Kelas diambil dari tb_siswa, Jurusan dari tb_jurusan yang dipanggil berdasarkan id_jurusan yang sama pada tb_siswa, kolom Tahun dan Nominal dari tb_spp yang dipanggil berdasarkan id_spp yang sama pada tb_siswa.

Posting Komentar

2 Komentar

  1. terima kasih pembelajarannya sangat bermanfaat saya sariman(1922520014) saya sedang belajar DPW di https://www.atmaluhur.ac.id
    lanjutkan kakak..

    BalasHapus
  2. Kalau pengen hapus data yang sudah di inner gimana caranya ya kak ?

    BalasHapus