Join Beberapa tabel di MySql dan Menampilkannya Menggunakan PHP
Dalam membuat program database yang baik maka harus memenuhi normalisasi setidaknya sampai tahap 3NF. Ketika
dilakukan normalisasi maka tabel yang tadinya Universal (UNF) sekarang
terpecah-pecah menjadi beberapa tabel. Kalau
sudah terpecah lalu bagaimana jika yang
ingin kita tampilkan di propgram PHP kita justru tabel universalnya. Nah, mari kita ulas tahapannya.
1.
Pertama Buat Terlebih dahulu Database dan
Tabelnya di MySql.
Berikut contoh tabelnya.
tb_pelanggan
|
|
no_pelanggan
|
nama
|
CR56
|
Sirajuddin
|
CR76
|
Badi
|
tb_pinjam
|
|||
nomor_property
|
no_pelanggan
|
tanggal_pinjam
|
tanggal_selesai
|
PG4
|
CR76
|
2016-02-01
|
2016-04-29
|
PG16
|
CR76
|
2015-09-01
|
2016-04-27
|
PG4
|
CR56
|
2015-09-01
|
2016-05-01
|
PG36
|
CR56
|
2015-08-10
|
2016-05-04
|
PG16
|
CR56
|
2016-01-01
|
2016-07-28
|
tb_property
|
|||
nomor_property
|
alamat_property
|
biaya
|
no_pemilik
|
PG16
|
Jl. Huzai/12, Jakarta
|
450
|
CO93
|
PG36
|
Jl. Al Azhar/49, Jakarta
|
375
|
CO93
|
PG4
|
Jl. Aai/07, Jakarta
|
350
|
CO40
|
tb_pemilik
|
|
no_pemilik
|
nama_pemilik
|
CO43
|
Sirajuddin
|
CO90
|
Badi
|
2.
Membuat Relasi dari masing-masing tabel.
Tentukan
field yang dapat dijadikan penghubung dari masing-masing tabel. Jika dari tabel diatas maka akan diperoleh
relasi seperti berikut:
1. 3. . Membuat Syntak Sqlnya.
Berikut bentuk umum Syntak Sql untuk join :
Dari
bentuk umum tersebut maka berikut Syntak JOIN untuk tabel-tabel diatas:
SELECT tb_pelanggan.no_pelanggan, tb_pelanggan.nama,
tb_pinjam.nomor_property, tb_pinjam.tanggal_pinjam, tb_pinjam.tanggal_selesai, tb_property.alamat_property, tb_property.biaya, tb_pemilik.no_pemilik, tb_pemilik.nama_pemilik
FROM tb_pelanggan
JOIN tb_pinjam on tb_pelanggan.no_pelanggan = tb_pinjam.no_pelanggan
JOIN tb_property on tb_pinjam.nomor_property = tb_property.nomor_property
JOIN tb_pemilik on tb_property.no_pemilik = tb_pemilik.no_pemilik;
silakan anda coba di MySql.
4. Masukan Syntak Sql kedalam PHP
Jika syntak sql diatas sudah dicoba dimysql dan berhasil, berarti syntak tersebut sudah benar maka kita bisa lanjut membuat file PHP dengan syntak sql tersebut didalamnya.
berikut contohnya :
<html>
<head>
<title>Sewa Property</title>
</head>
<body>
<h3><p align="center">Sewa Property</p></h3>
<table align="center" border=1>
<tr>
<td>No</td>
<td>No Pelanggan</td>
<td>Nama Pelanggan</td>
<td>Nomor Property</td>
<td>Tanggal Pinjam</td>
<td>Tanggal Selesai</td>
<td>Alamat Property</td>
<td>Biaya</td>
<td>No Pemilik</td>
<td>Nama Pemilik</td>
</tr>
<?php
$link = mysql_connect("localhost","root","") or
die ("koneksi gagal");
mysql_select_db ("uts_apsi",$link);
$no=1;
$sql = mysql_query("select tb_pelanggan.no_pelanggan,tb_pelanggan.nama, ".
"tb_pinjam.nomor_property, tb_pinjam.tanggal_pinjam, tb_pinjam.tanggal_selesai, ".
"tb_property.alamat_property, tb_property.biaya, ".
"tb_pemilik.no_pemilik,tb_pemilik.nama_pemilik ".
"from tb_pelanggan ".
"join tb_pinjam on tb_pelanggan.no_pelanggan = tb_pinjam.no_pelanggan ".
"join tb_property on tb_pinjam.nomor_property = tb_property.nomor_property ".
"join tb_pemilik on tb_property.no_pemilik = tb_pemilik.no_pemilik order by no_pelanggan ASC") or die(mysql_error());
while($data=mysql_fetch_array($sql))
{
?>
<tr>
<td> <?php echo $no; ?> </td>
<td> <?php echo $data['no_pelanggan']; ?> </td>
<td> <?php echo $data['nama']; ?> </td>
<td> <?php echo $data['nomor_property']; ?> </td>
<td> <?php echo $data['tanggal_pinjam']; ?> </td>
<td> <?php echo $data['tanggal_selesai']; ?> </td>
<td> <?php echo $data['alamat_property']; ?> </td>
<td> <?php echo $data['biaya']; ?> </td>
<td> <?php echo $data['no_pemilik']; ?> </td>
<td> <?php echo $data['nama_pemilik']; ?> </td>
</tr>
<?php
$no++;
}
?>
</tr>
</table>
</body>
</html>
dari syntak diatas kita gunakan variabel link untuk koneksi kedatabasenya
sesuaikan dengan database anda, contoh diatas menggukana uts_apsi sebagai nama databasenya.
sedangkan untuk mengambil data dari databasenya kita gunakan variabel sql

untuk syntak sqlnya sama seperti di langkah no. 3, hanya ada perbedaan yaitu adanya (") dan ( ".) seperti yang ditandai diatas. Ini digunakan karena script diatas menggunakan enter, anda bisa menghilangkan (") dan ( ".) yang ditandai diatas jika syntak tersebut anda tulis memanjang kekanan tanpa enter.
kemudian script berikut untuk menampilkan data dari databasenya :
Silakan Mencoba.!!!!
thank~ ka~
BalasHapus