Perhatikan studi kasus berikut ini, misalkan kita punya data karyawan yang tersimpan dalam 3 buah tabel yaitu ‘karyawan’, ‘golongan’ dan ‘bidang’ sebagaimana tampak pada gambar berikut ini
Tabel: Bidang

Tabel: Golongan

Tabel: Karyawan

Yang jadi permasalahan adalah, bagaimana cara kita membuat script PHP untuk menghasilkan output seperti di bawah ini?

OK sebelum kita mulai membuat scriptnya, terlebih dahulu kita harus punya ide pembuatannya dulu. Apabila kita perhatikan bahwa setiap baris data pada tabel output menunjukkan informasi mengenai jumlah total pegawai, jumlah pegawai pada masing-masing golongan untuk setiap bidangnya. Maka nanti idenya adalah, kita baca semua bidang yang ada dahulu, kemudian untuk setiap bidangnya kita cari jumlah data masing-masing item nya (total pegawai dan jumlah karyawan berdasarkan golongan). Sambil mencari jumlah masing-masing item untuk setiap bidang, jangan lupa kita jumlahkan jumlah masing-masing itemnya untuk mencari total item di akhir tabel.
Berdasarkan ide tersebut, kita buat script PHP sbb:
01.<?php02./*03.perintah koneksi ke db ditulis di sini04.*/05. 06.// membuat awal dan header tabel07.echo "<table>";08.echo "<tr><th>No</th><th>Bidang</th><th>Jum
Karyawan</th><th>Gol. Satu</th><th>Gol.
Dua</th><th>Gol. Tiga</th></tr>"; 09. 10.// nilai awal untuk nomor urut data11.$no = 1;12. 13.// nilai awal jumlah total karyawan14.$totalKaryawan = 0;15. 16.// nilai awal jumlah karyawan gol 117.$totalGol1 = 0;18. 19.// nilai awal jumlah karyawan gol 220.$totalGol2 = 0;21. 22.// nilai awal jumlah karyawan gol 323.$totalGol3 = 0;24. 25.// membaca semua data bidang26.$query = "SELECT * FROM bidang";27.$hasil = mysql_query($query);28.while ($data = mysql_fetch_array($hasil))29.{30.// baca kode bidang31.$kodeBidang = $data['kd_bidang'];32. 33.// baca nama bidang34.$namaBidang = $data['nama_bidang'];35. 36.// cari jumlah karyawan untuk setiap kode bidang37.$query2 = "SELECT count(*) as jum FROM karyawan WHERE kd_bidang = '$kodeBidang'";38.$hasil2 = mysql_query($query2);39.$data2 = mysql_fetch_array($hasil2);40.$jumlah = $data2['jum'];41. 42.// menjumlahkan setiap jumlah karyawan setiap bidang43.// untuk menghitung total seluruh karyawan44.$totalKaryawan += $jumlah;45. 46.// cari jumlah karyawan untuk setiap kode bidang bergolongan 147.$query2 = "SELECT count(*) as jum1 FROM karyawan WHERE kd_bidang = '$kodeBidang' AND kd_gol = 1";48.$hasil2 = mysql_query($query2);49.$data2 = mysql_fetch_array($hasil2);50.$jumGol1 = $data2['jum1'];51. 52.// menjumlahkan setiap jumlah karyawan gol 1 di setiap bidang53.// untuk menghitung total seluruh karyawan bergolongan 154.$totalGol1 += $jumGol1;55. 56.// cari jumlah karyawan untuk setiap kode bidang bergolongan 257.$query2 = "SELECT count(*) as jum2 FROM karyawan WHERE kd_bidang = '$kodeBidang' AND kd_gol = 2";58.$hasil2 = mysql_query($query2);59.$data2 = mysql_fetch_array($hasil2);60.$jumGol2 = $data2['jum2'];61. 62.// menjumlahkan setiap jumlah karyawan gol 2 di setiap bidang63.// untuk menghitung total seluruh karyawan bergolongan 264.$totalGol2 += $jumGol2;65. 66.// cari jumlah karyawan untuk setiap kode bidang bergolongan 367.$query2 = "SELECT count(*) as jum3 FROM karyawan WHERE kd_bidang = '$kodeBidang' AND kd_gol = 3";68.$hasil2 = mysql_query($query2);69.$data2 = mysql_fetch_array($hasil2);70.$jumGol3 = $data2['jum3'];71. 72.// menjumlahkan setiap jumlah karyawan gol 3 di setiap bidang73.// untuk menghitung total seluruh karyawan bergolongan 374.$totalGol3 += $jumGol3;75. 76.// tampilkan baris datanya untuk setiap bidang77.echo "<tr><td>".$no."</td><td>".$namaBidang."</td><td>".$jumlah."</td><td>".$jumGol1."</td><td>".$jumGol2."</td><td>".$jumGol3."</td></tr>";78. 79.// increment untuk nomor urut data80.$no++;81.}82. 83.// membuat baris untuk total data84.echo "<tr><td colspan='2'>Jumlah</td><td>".$totalKaryawan."</td><td>".$totalGol1."</td><td>".$totalGol2."</td><td>".$totalGol3."</td></tr>";85. 86.// membuat akhir dari tabel87.echo "</table>";88. 89.?>
Tidak ada komentar:
Posting Komentar