Menampilkan Data Dari
Tabel Berelasi Satu-ke-satu
Cara paling cepat menampilkan dari tabel yang berelasi satu-ke-satu adalah
menggunakan sql
join, seperti kode php di bawah.
1. <?php
2. $conn = mysql_connect("localhost","root","blah");
3. mysql_select_db("test",$conn);
4. $sql = "select * from product p inner join buku b on
p.id_produk=b.id_produk";
5. $result = mysql_query($sql);
6. ?>
7. <table cellpadding="5"
cellspacing="0" border="1">
8. <tr>
9. <th>Nama</th>
10. <th>Harga</th>
11. <th>Penulis</th>
12. <th>Penerbit</th>
13. <th>ISBN</th>
14. <th>Tanggal
Terbit</th>
15. </tr>
16. <?php while($buku = mysql_fetch_array($result)){?>
17. <tr>
18. <td><?php echo $buku['nama'];?></td>
19. <td><?php echo $buku['harga'];?></td>
20. <td><?php echo $buku['penulis'];?></td>
21. <td><?php echo $buku['penerbit'];?></td>
22. <td><?php echo $buku['isbn'];?></td>
23. <td><?php echo $buku['tgl_terbit'];?></td>
24. </tr>
25. <?php }?>
26.</table>
Menampilkan Data dari
Tabel Berelasi Satu-ke-banyak
Untuk menampilkan data dari tabel berelasi satu ke banyak juga bisa
menggunakan sql join, namun lebih bagus jika tidak. Caranya adalah membaca
tabel induk dan kemudian menampilkan tabel anak berdasarkan isi tabel
induk,seperti:
1. <?php
2. $conn = mysql_connect("localhost","root","blah");
3. mysql_select_db("test",$conn);
4. $sql = "select * from album";
5. $result = mysql_query($sql);
6. ?>
7. <table cellpadding="5"
cellspacing="0" border="1">
8. <tr>
9. <th>Judul</th>
10. <th>Artis</th>
11. </tr>
12. <?php while($album = mysql_fetch_array($result)){?>
13. <tr>
14. <td><?php echo $album['judul'];?></td>
15. <td><?php echo $album['artis'];?></td>
16. </tr>
17. <tr>
18. <td
colspan="2">
19. <strong>Lagu:
</strong>
20. <table
cellspacing="0" cellpadding="3">
21. <tr>
22. <td
style="border-bottom:1px solid #000;">No Track</td>
23. <td
style="border-bottom:1px solid #000">Judul</td>
24. <td
style="border-bottom:1px solid #000">Durasi</td>
25. </tr>
26. <?php
27. $rowset = mysql_query("select * from lagu where id_album='".$album['id']."'");
28. while($lagu = mysql_fetch_array($rowset)){
29. ?>
30. <tr>
31. <td
style="border-bottom:1px solid #000; border-right:1px solid #000"><?php echo $lagu['no_track'];?></td>
32. <td
style="border-bottom:1px solid #000; border-right:1px solid #000"><?php echo $lagu['judul'];?></td>
33. <td
style="border-bottom:1px solid #000"><?php echo $lagu['durasi'];?></td>
34. </tr>
35. <?php }?>
36. </table>
37. </td>
38. </tr>
39. <?php }?>
40.</table>
bisa dilihat kode di atas hampir sama dengan kode untuk menampilkan data
dari satu tabel. Perbedaanya adalah pada baris 17-38. Baris 17-38 adalah untuk
menampilkan lagu berdasarkan id_album album yang sedang ditampilkan.
Menampilkan Data dari
Tabel Berelasi Banyak-ke-banyak
Untuk menampilkan data dari tabel yang berelasi banyak ke banyak hampir
sama dengan cara menampilkan data dari tabel berelasi satu ke banyak.Bedanya
adalah pada sql yang digunakan, yaitu sql
join. Sekarang buka kembali file list-mahasiswa.php yang telah dibuat di tutorial sebelumnya dan ubah menjadi:
1. <?php
2. $conn = mysql_connect("localhost","root","blah");
3. mysql_select_db("test",$conn);
4. $sql = "select * from mahasiswa";
5. $result = mysql_query($sql);
6. ?>
7. <table cellspacing="0"
cellpadding="5" border="1">
8. <tr>
9. <td>NIM</td>
10. <td>Nama</td>
11. <td>Jurusan</td>
12. <td>Aksi</td>
13. </tr>
14. <?php while($mhs = mysql_fetch_array($result)){?>
15. <tr>
16. <td><?php echo $mhs['nim'];?></td>
17. <td><?php echo $mhs['nama'];?></td>
18. <td><?php echo $mhs['jurusan'];?></td>
19. <td><a
href="mahasiswa_mk.php?nim=<?php echo $mhs['nim'];?>">Tambah Mata
Kuliah</a></td>
20. </tr>
21. <tr>
22. <td
colspan="4">
23. <strong>Mata
Kuliah:</strong>
24. <table
cellspacing="0" cellpadding="5" width="100%">
25. <tr>
26. <td
style="border-bottom:1px solid #000;">Kode MK</td>
27. <td
style="border-bottom:1px solid #000;">Nama MK</td>
28. </tr>
29. <?php
30. $rowset = mysql_query("select * from mahasiswa_mk m inner join
31. mata_kuliah
m1 on m.id_mk=m1.id where nim='".$mhs['nim']."'");
32. while($mk = mysql_fetch_array($rowset)){
33. ?>
34. <tr>
35. <td
style="border-bottom:1px solid #000;border-right:1px solid #000"><?php echo $mk['kode'];?></td>
36. <td
style="border-bottom:1px solid #000;"><?php echo $mk['nama'];?></td>
37. </tr>
38. <?php }?>
39. </table>
40. </td>
41. </tr>
42. <?php }?>
43.</table>
Baris 21-41 adalah untuk menampilkan
mata kuliah dari mahasiswa yang bersangkutan.
sumber :http://www.myphptutorials.com