Menampilkan Data Dari 2 Tabel Mysql Dengan Php

Ryo Suwito - Contributor

: | : 18 April 2018 | Programming

Menampilkan Data Dari 2 Tabel Mysql Dengan Php

Menampilkan Data Dari 2 Tabel Mysql Dengan Php

: | : 18 April 2018 | Programming
Tags | Table | Join | PHP | MySQL

Rangkuman Singkat

DI artikel ini tidak ada cara untuk memasukan data ke dalam database atau cara menghubungkan database ke PHP.

Jika kamu belum bisa mengkoneksikan database ke PHP, maka kamu bisa mengikuti artikel sebelumnya. Atau kamu ingin menghubungkan form ke database? Kamu bisa cek di artikel sebelumnya.

Disini yang akan kita bahas adalah :

  • Cara menggabungkan data dari 2 tabel berbeda dengan PHP
  • Cara menampilkan data dari 2 tabel mysql dengan PHP
  • Cara menampilkan 2 tabel dalam 1 query PHP
  • Cara menggabungkan tabel pelanggan dengan tabel pesanan, dsb.

Daftar Isi

  • Persiapan Database
  • Membuat Struktur Tabel yang akan Digabung
  • Membuat Tabel Pelanggan dan Tabel Pesanan
  • Mengenal Query JOIN
  • Implementasi Query MySQL menggunakan PHP

Persiapan

Untuk menampilkan data dari 2 tabel mysql dengan php, dapat dilakukan dengan mudah karena pada dasarnya setiap tabel memiliki hubungan (relasi), bentuk hubungan antar data ada banyak macamnya, bisa berupa hubungan satu lawan satu (one to one), satu-ke-banyak (one to many), dan banyak ke banyak (many to many).

Sebelum melangkah lebih jauh, kita perlu menyiapkan tabel yang akan kita gunakan dalam tutorial ini. Untuk itu bagi kamu yang belum mempersiapkan server PHP di localhost bisa mengikuti tutorial berikut ini terlebih dahulu:

Membuat Struktur Tabel yang Akan Digabung

Dalam contoh ini, skenario yang kita pakai adalah ada dua tabel, yaitu:

  1. tabel pelanggan
  2. tabel daftar_pesanan

untuk menggambarkan struktur dan hubungan antar tabel dapat dilihat pada gambar berikut :

menggabungkan 2 tabel mysql


NOTE : 
Harap diperhatikan tanda panah ( ---> ) yang mengarah dari id_pelanggan maksudnya adalah kolom id_pelanggan ini akan kita jadikan sebagai foreign key

Apa itu foreign key dalam database MySQL ? Kurang lebih maksudnya adalah foreign key ini yang akan jadi penghubung antara dua data di dalam tabel yang berbeda. Jadi walaupun setiap baris pada tabel bisa memuat data yang berbeda, kedua tabel tersebut tetap ketergantungan satu sama lain lewat foreign_key ini.

Agar lebih mudah paham apa itu foreign key, ikuti sampai akhir tutorial ini.

Buat Tabel Pelanggan dan Tabel Pesanan Sederhana

Jika digambarkan secara sederhana seperti inilah struktur tabel yang akan kamu buat untuk latihan menampilkan data dari 2 tabel mysql dengan php :

Tabel Pelanggan :
+--------------+----------------+-------------------+
| id_pelanggan | nama_pelanggan | email             |
+--------------+----------------+-------------------+
|           1  | Alfa           | alfa@yahoo.com    |
|           2  | Beta           | beta@yahoo.com    |
|           3  | Charlie        | charlie@gmail.com |
|           4  | Delta          | delta@gmail.com   |
+--------------+----------------+-------------------+
Tabel Daftar Pesanan:
+------------+--------------+------------+--------+
| id_pesanan | id_pelanggan |   tanggal  | jumlah |
+------------+--------------+------------+--------+
|          1 |            1 | 2017-02-22 |     23 |
|          2 |            3 | 2017-02-22 |     19 |
|          3 |            2 | 2017-01-01 |    171 |
|          4 |            1 | 2017-02-04 |     31 |
|          5 |         NULL | 2017-02-10 |      8 |
+------------+--------------+------------+--------+

Sekilas Tentang Fungsi JOIN pada MySQL

Sebelum membuat kode PHP yang akan kita gunakan untuk memproses data, sebaiknya kita bahas dahulu kueri MySQL yang akan kita gunakan, setelah itu baru kita implementasikan kedalam bentuk PHP.

Untuk menggabungkan tabel di MySQL, kita menggunakan klausa JOIN. Dengan klausaJOIN, kamu bisa menampilkan 2 tabel dalam 1 query PHP sekaligus. Sintaks umum JOIN adalah sebagai berikut:

SELECT nama_kolom
FROM tabel1
INNER JOIN tabel2 ON conditions

Selain menggunakan klausa ONuntuk menentukan kondisinya, kita juga bisa menggunakan klausa USING, sintaksnya seperti berikut:

SELECT nama_kolom
FROM tabel1
INNER JOIN tabel2 USING (nama_kolom)

Klausa USING akan menggunakan data di nama_kolom untuk menghubungkan kedua tabel.

Singkat kata, nama_kolom ini harus ada di kedua tabel dan harus memiliki nama yang sama, misalnya kolom id_pelanggan / id_pesanan.

Biasanya, kolom yang saling terkait antar tabel dinamakan Primary Key atau Foreign Key. Sudah paham dengan fungsi foreign key sampai disini? Kalau belum, baca lagi dari awal ya !

JOIN atau INNER JOIN ?

Apa itu Klausa INNER JOIN Pada MySQL ?

Dengan inner join, tabel akan digabungkan dengan menggunakan nilai yang ada pada kedua tabel menggunakan foreign_key sebagai kolom identifikasi baris. 

INNER JOIN memiliki fungsi yang sama saja dengan klausa JOIN oleh karena itu pada tutorial ini kita hanya menggunakan JOIN  saja.


 

Misalnya, kita ingin menampilkan data dari 2 tabel mysql dengan php yang berisi data pelanggan berserta data-data daftar pesanan mereka, kueri yang kita pakai adalah sebagai berikut:

SELECT c.id_pelanggan, nama_pelanggan, tanggal, jumlah
FROM pelanggan c
JOIN daftar_pesanan s ON c.id_pelanggan = s.id_pelanggan

Jika kita menggunakan klausa USING, maka yang dipakai adalah kueri :

SELECT c.id_pelanggan, nama_pelanggan, tanggal, jumlah
FROM pelanggan c
JOIN daftar_pesanan s USING (id_pelanggan)

 

Menurut pendapat saya pribadi, Kueri menggunakan USING ( ) lebih mudah dipahami. Tapi tentu saja setiap orang punya pendapat berbeda.

Dengan cara diatas, kamu bisa menampilkan 2 tabel dalam 1 query PHP. Sekarang jika kamu eksekusi kueri tersebut ke database MySQL kita hasilnya adalah sebagai berikut :

+--------------+----------------+------------+--------+
| id_pelanggan | nama_pelanggan |   tanggal  | jumlah |
+--------------+----------------+------------+--------+
|            1 | Alfa           | 2017-02-22 |     23 |
|            3 | Charlie        | 2017-02-22 |     19 |
|            2 | Beta           | 2017-01-01 |    171 |
|            1 | Alfa           | 2017-02-04 |     31 |
+--------------+----------------+------------+--------+

Penjelasan:

Jadi, pelanggan bernama Delta tidak muncul di tabel hasil. Kenapa tidak muncul? itu karena pelanggan bernama Delta tidak melakukan pesanan apapun. Begitu juga dengan Order yang memiliki id_pesanan bernomor 5 tidak akan muncul, karena order tersebut memiliki id_pelanggan NULL, dengan kata lain pesanan tersebut tidak terpakai karena tidak terhubung dengan pelanggan manapun.

Sudah paham dengan konsep foreign key sampai disini ? Kalau belum dibaca lagi ya dari awal.

Implementasi Query JOIN Menggunakan PHP

Untuk mengimplementasikan kueri MySQL tersebut bisa kita gunakan kode PHP dibawah ini. Pada dasarnya fungsi PHP ini melanjutkan kode dari pembahasan sebelumnya.File db_connection.php yang kita include juga merupakan file yang telah kita buat sebelumnya.

Potongan kode dibawah ini akan menampilkan 2 tabel dalam 1 query PHP. Hasil query tersebut kemudian akan diolah, hasil akhirnya adalah berupa JSON (JavaScript Object Notation) yang berisikan data-data hasil penggabungan dua tabel tersebut.

<?php
    include 'db_connection.php';
 
    $conn = OpenCon();
 
    $sql = "SELECT  c.id_pelanggan, nama_pelanggan, tanggal, jumlah
           FROM pelanggan c
           JOIN daftar_pesanan s USING (id_pelanggan)";
 
    $result = mysqli_query($conn, $sql);
 
    if (mysqli_num_rows($result) > 0) {
    // data yang dihasilkan untuk masih-masing baris
         $dataArray = [];
         while($row = mysqli_fetch_assoc($result)) {
           array_push($dataArray, $row);
         }
         echo json_encode($dataArray);
    }
?>

Kesimpulan

Sebenarnya masih ada banyak cara menampilkan data dari 2 tabel mysql dengan php mysql selain menggunakan Innerjoin. Seperti misalnya Outerjoin, dsb. Seringkali yang dipakai untuk menampilkan data dari 2 tabel berbeda hanyalah membutuhkan klausa JOIN. Karena dengan klausa Join ini kamu bisa menampilkan data 2 tabel dalam 1 query PHP saja.

Sebelum menuliskan kode PHP yang akan kita gunakan untuk menampilkan data dari tabel berbeda, biasakan untuk membuat struktur dari tabel yang akan kita gabungkan.

Hal ini untuk mempermudah menentukan primary key dan foreign key yang nantinya akan kita gunakan pada saat proses menampilkan data dari 2 tabel tersebut.

Cover Picture Designed by Freepik

Share to your friends !


Powered by: