Membuat laporan detail bercabang dengan php

Kali ini saya ingin bahas tentang bagaimana membuat laporan detail bercabang dengan php. Maksud bercabang disini adalah sebuah laporan memiliki sub detail, dan didalam sub masih ada lagi laporan lagi sesuai sub yang dipilih. Saya beri contoh kasus informasi pada sebuah perguruan tinggi. Dalam sebuah universitas terdapat beberapa fakultas, dalam sebuah fakultas terdapat beberapa jurusan.
Dari contoh kasus diatas, sebenarnya kemungkinan sub laporanya masih ada misal dalam sebuah jurusan ada banyak kelas, dalam sebuah kelas ada banyak mahasiswa, tiap mahasiswa memiliki banyak mata kuliah atau nilai dst. Tapi saya tidak bahas sampai detail itu, cukup sampai ke level jurusan.

Berikut ini contoh desain tabel datanya (saya buat minimal dilarang protes) :

Nama database : db_univ (silahkan di create sendiri).
Kemudian buat tabelnya :

tabel universitas
kode_univ int(11) primary auto number
nama_niv varchar(30)
tabel fakultas
kode_fak int(11) primary auto number
kode_univ int(11)
nama_fak varchar(30)
tabel jurusan
kode_jur int(11) primary auto number
kode_fak int(11)
nama_jur varchar(30)


Ini query create tabel dan datanya :

CREATE TABLE IF NOT EXISTS `tb_fak` (
  `kode_fak` int(11) NOT NULL AUTO_INCREMENT,
  `kode_univ` int(11) NOT NULL,
  `nama_fak` varchar(30) NOT NULL,
  PRIMARY KEY (`kode_fak`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS `tb_jur` (
  `kode_jur` int(11) NOT NULL AUTO_INCREMENT,
  `kode_fak` int(11) NOT NULL,
  `nama_jur` varchar(30) NOT NULL,
  PRIMARY KEY (`kode_jur`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS `tb_univ` (
  `kode_univ` int(11) NOT NULL AUTO_INCREMENT,
  `nama_univ` varchar(30) NOT NULL,
  PRIMARY KEY (`kode_univ`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

INSERT INTO `tb_fak` (`kode_fak`, `kode_univ`, `nama_fak`) VALUES
(1, 1, 'Fak. Teknik'),
(2, 2, 'Fak. Ekonomi'),
(3, 1, 'Fak. Fisip');

INSERT INTO `tb_jur` (`kode_jur`, `kode_fak`, `nama_jur`) VALUES
(1, 1, 'Tek. Informasi'),
(2, 1, 'Tek. Mesin');

INSERT INTO `tb_univ` (`kode_univ`, `nama_univ`) VALUES
(1, 'UNIV. JAYA'),
(2, 'UNIV. MERDEKA');


Kita mulai membuat koneksi database (koneksi.php) dengan isi seperti berikut :
<?php
   $dbserver="localhost";
   $dbusername="root";
   $dbpassword="";
   $dbname="db_univ";
   mysql_connect($dbserver,$dbusername,$dbpassword) or die(mysql_error());
   mysql_select_db($dbname) or die (mysql_error());
?>


Kita mulai dari membuat laporan universitas, seperti kode berikut :
<?php
 include("koneksi.php");
?>
<html>
<head>
<title>Daftar Universitas</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h2 align="center">Daftar Universitas</h2>
<table width="400" border="1" align="center" cellpadding="3" cellspacing="0">
  <tr>
    <td>Nama Universitas</td>
    </tr>
<?php
   $myquery="select kode_univ,nama_univ from tb_univ";
   $laporan=mysql_query($myquery) or die (mysql_error());
   while($rec=mysql_fetch_object($laporan))
   {
?>
  <tr>
    <td><a href="laporan-fak.php?kode_univ=<?php echo  $rec->kode_univ?>"><?php echo  $rec->nama_univ?></a></td>
    </tr>
<?php
   }
?>
</table>
<div align="center">
<div align="center"><a href="javascript:history.back()">Kembali</a>
</div>
</body>
</html>
Membuat laporan detail bercabang dengan php Membuat laporan detail bercabang dengan php Reviewed by Wahyumiftahulhuda on Oktober 08, 2013 Rating: 5

Tidak ada komentar:

Diberdayakan oleh Blogger.