# Navigation

Cara Membuat Rowspan Dinamis Pada Tabel Dengan PHP

Cara Membuat Rowspan Dinamis Pada Tabel Dengan PHP

Karena setiap pegawai bisa melakukan lebih dari satu kali pelayanan, maka saya harus menampilkan semua data pelayanan seorang pegawai dalam satu baris tabel, lebih jelasnya berikut ilustrasi tabelnya.

Nama Pegawai Jenis Pelayanan Jumlah Dibayar Tanda Tangan

Ashhar Bustan
(Anggrek)

Glaukoma 100000  
Katarak 200000
Operasi 300000

 

Tampilan tabelnya kurang lebih seperti di atas. Pada kolom Nama Pegawai dan Tanda Tangan digunakan rowspan otomatis sesuai dengan jumlah pelayanan setiap pegawai, pengambilan data dari database menggunakan perintah sql.

SELECT a.nip, a.nama_pegawai, a.id_pegawai,  b.*, c.nama_pelatihan, d.*, (SELECT COUNT(*) FROM tbl_data_pelayanan b WHERE b.id_pegawai = a.id_pegawai ) as jml_id from tbl_data_pegawai a right join tbl_data_pelayanan b on a.id_pegawai=b.id_pegawai left join tbl_master_pelatihan c on b.id_master_ruang=c.id_pelatihan left join tbl_master_screening d on b.id_master_pelayanan=d.id_screening where MONTH(date_format(str_to_date(b.tgl_pelayanan, '%d-%m-%Y'), '%Y%m%d'))='".$set_lap2['bulan']."' order by b.id_pegawai

Selanjutnya berikut script PHP untuk menampilkan data dari database seperti pada ilustrasi tabel di atas

		$tempnip=""; $no=1; $total=""; $totbayar=0;
		$tot1=0; $tot2=0; $tot3=0; $tot4=0; $ttd="";
		while($dp = mysql_fetch_array($data_pegawai))
		{
			if($tempnip != trim($dp['nip'])){ 
				if(!empty($tempnip)){
					$total="<tr>
						<td><b>Total</b></td>
						<td>&nbsp;</td>
						<td>&nbsp;</td>
						<td>&nbsp;</td>
						<td><b>".number_format($totbayar,0,'.','.')."</b></td>
						</tr>";
					$totbayar=0;
					$hitung = $dp['jml_dibayar']-($dp['jml_dibayar']*$dp['persentase']/100);
					$totbayar += $hitung;
					$ttd = "<td rowspan='".($dp['jml_id']+1)."'></td>";
				}else{
					$totbayar = $dp['jml_dibayar']-($dp['jml_dibayar']*$dp['persentase']/100);
					$ttd = "<td rowspan='".($dp['jml_id']+1)."'></td>";
				}
					
			echo $total;
			echo "<tr height='35' valign='top'>";
			echo "<td rowspan='".($dp['jml_id']+1)."'>".$no."</td>";
			echo "<td rowspan='".($dp['jml_id']+1)."'>".$dp['nama_pegawai']."<br>(".$dp['nama_pelatihan'].")</td>";
			$no++;
			
			}else{
				$hitung = $dp['jml_dibayar']-($dp['jml_dibayar']*$dp['persentase']/100);
				$totbayar += $hitung;
				$ttd="";
			} 

			echo "<td>".$dp['nama_screening']."</td>";
			echo "<td>".number_format($dp['jml_dibayar'],0,'.','.')."</td>";
		
			if ($dp['persentase']=='5'){
				echo "<td>-</td>";
				echo "<td>".number_format($dp['jml_dibayar']*$dp['persentase']/100,0,'.','.')."</td>";
				$tot3 += $dp['jml_dibayar']*$dp['persentase']/100;
			}else{
				echo "<td>".number_format($dp['jml_dibayar']*$dp['persentase']/100,0,'.','.')."</td>";
				echo "<td>-</td>"; 
				$tot2 += $dp['jml_dibayar']*$dp['persentase']/100;
			}
		
			echo "<td>".number_format(($dp['jml_dibayar']-($dp['jml_dibayar']*$dp['persentase']/100)),0,'.','.')."</td>";
			$tot4 += $dp['jml_dibayar']-($dp['jml_dibayar']*$dp['persentase']/100);
		
			echo $ttd;
			
			echo "</tr>";
	  		//echo $dp['jml_id'];
			$tempnip = $dp['nip'];
			$tot1 += $dp['jml_dibayar'];
	 	}
		//Bataa Isi Tabel
	?>

Silahkan dipelajari script di atas, kalau bingung silahkan tanya saya :) !Gratis


YANG LAIN: