Advertisement
justhrun

absensi_v2.pehape

Sep 16th, 2014
314
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.20 KB | None | 0 0
  1. <?php
  2. date_default_timezone_set('Asia/Jakarta');
  3.  
  4. $host = 'localhost';
  5. $pass = '';
  6. $user = 'root';
  7. $dbname='chl';
  8. $connect = mysql_connect($host, $user, $pass) or die(mysql_error());
  9. mysql_select_db($dbname);
  10.  
  11. // $tahun = $_POST["tahun"];
  12. // $bulan = $_POST["bulan"];
  13. $tahun = 2014;
  14. $bulan = 8;
  15.  
  16. if($bulan<10) $bulan = "0$bulan";
  17. echo "tahun: $tahun<br>";
  18. echo "bulan: $bulan<br>";
  19.  
  20. /*
  21. cari jumlah hari cukup pake built_in function php aja, bisa dgn 2cara:
  22. $jh = date("t",mktime(0,0,0,$bulan,1,$tahun)); // <== hasilnya jumlah hari 28-31
  23. $jh = date("j",mktime(0,0,0,$bulan+1,0,$tahun)); // <== hasilnya hari terakhir dlm suatu bulan
  24. //function cari jumlah hari
  25. function jumlah_hari($bulan,$tahun) {
  26.         return ( date("t",mktime(0,0,0,$bulan,1,$tahun)) );
  27. }
  28. //cara menggunakan fungsi menghitung jumlah hari
  29. echo "Jumlah Hari :";
  30. echo jumlah_hari($bulan,$tahun);
  31. $ar= jumlah_hari($bulan,$tahun);
  32. */
  33.  
  34. $thnbln = "$tahun-$bulan-";
  35. $jh = date("t",mktime(0,0,0,$bulan,1,$tahun));
  36. $t_awal = $thnbln."01";
  37. $t_akhir = $thnbln."$jh";
  38.  
  39. echo "<table border=2 align=center name=outpu2>
  40. <tr height=24><th>#</th><th>Nama</th><th>gender</th><th>NIK</th>\n";
  41.  
  42. $query = "SELECT S.nama,S.gender,S.NIK,\n";
  43. for($t=1;$t<=$jh;$t++) {                                        // bikin BIG query, sekalian table header
  44.         $tg = $t<10 ? "0$t" : $t;
  45.         echo "<th>$tg</th>\n";
  46.         $tgl = $thnbln.$tg;
  47.         $query .= "(SELECT t$tg.id_hadir FROM tbl_absensi t$tg WHERE t$tg.id_siswa=S.id_siswa AND t$tg.tanggal='$tgl') 'tgl_$t', \n";
  48. }
  49. echo "<th width=20> Hadir</th>
  50. <th width=20>Sakit</th>
  51. <th width=20>Izin</th>
  52. <th width=20>Alfa</th>
  53. <th width=20>Total</th>
  54. </tr>";
  55.  
  56. $mark = array("","bgcolor=#33ff33","bgcolor=#3333ff","bgcolor=#33ffff","bgcolor=#ff3333");
  57. $query = substr(trim($query),0,-1);
  58. $query .= " \nFROM tbl_absensi T JOIN tbl_siswa S ON S.id_siswa=T.id_SISWA
  59. WHERE T.tanggal BETWEEN '$t_awal' AND '$t_akhir' GROUP BY T.id_siswa ORDER BY S.nama";
  60.  
  61. echo "<pre><b>Inilah BIG QUERY-nya</b>:\n $query</pre>"; // exit(0);
  62.  
  63. $result = mysql_query($query);
  64. $n = 0;
  65. while($row = mysql_fetch_row($result)) {
  66.         $hadir = $sakit = $ijin = $alfa = 0;
  67.         $n++;
  68.         echo "<tr><td>$n</td>\n";
  69.         foreach($row as $k=>$val) {
  70.                 $bg = "";
  71.                 $display = is_null($val) ? "&nbsp;" : $val;
  72.                 if($k>2 && !is_null($val) ) {
  73.                         $bg = $mark[$val];
  74.                         $display = "&nbsp;";
  75.                         switch($val) {
  76.                                 case 1: $hadir++; break;
  77.                                 case 2: $sakit++; break;
  78.                                 case 3: $ijin++; break;
  79.                                 case 4: $lfa++; break;
  80.                         }
  81.                 }
  82.                 echo "<td $bg>&nbsp;$display</td>\n";
  83.         }
  84.         $total = $hadir+$sakit+$ijin+$alfa;
  85.         echo "<td align=center>$hadir</td>
  86.        <td align=center>$sakit</td>
  87.        <td align=center>$ijin</td>
  88.        <td align=center>$alfa</td>
  89.        <td align=center>$total</td></tr>\n";
  90. }
  91. mysql_free_result($result);
  92. mysql_close($connect);
  93. ?>
  94. </table><br>
  95. 1 HADIR<br>
  96. 2 SAKIT<br>
  97. 3 IZIN<br>
  98. 4 ALFA<br>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement