Advertisement
zingga

CRUD WITH FILTER

Feb 19th, 2017
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.20 KB | None | 0 0
  1. <?php
  2.     $table = 'buku';
  3.     $primaryKey = 'id_buku';
  4.     $fill = 'judul, noisbn, penulis, penerbit, tahun, harga_pokok, harga_jual, ppn, diskon';
  5.     $id = '';
  6.     $act = 'add';
  7.     $judul = $noisbn = $penulis = $penerbit = $tahun = $stok = $harga_pokok = $harga_jual = $ppn = $diskon = '';
  8.  
  9.     if (isset($_POST['simpan'])) {
  10.         $judul = $db->escape_string($_POST['judul']);
  11.         $noisbn = $db->escape_string($_POST['noisbn']);
  12.         $penulis = $db->escape_string($_POST['penulis']);
  13.         $penerbit = $db->escape_string($_POST['penerbit']);
  14.         $tahun = $db->escape_string($_POST['tahun']);
  15.         $harga_pokok = $db->escape_string($_POST['harga_pokok']);
  16.         $harga_jual = $db->escape_string($_POST['harga_jual']);
  17.         $ppn = $db->escape_string($_POST['ppn']);
  18.         $diskon = $db->escape_string($_POST['diskon']);
  19.         $act = $db->escape_string($_POST['act']);
  20.  
  21.         switch ($act) {
  22.             case 'add':
  23.                     $query = "INSERT INTO $table ($fill) VALUES ('$judul','$noisbn','$penulis','$penerbit','$tahun','$harga_pokok','$harga_jual','$ppn','$diskon')";
  24.                 break;
  25.            
  26.             case 'edit':
  27.                     $id = $_POST['id'];
  28.  
  29.                     $query = "UPDATE buku SET judul = '$judul', noisbn = '$noisbn', penulis = '$penulis', penerbit = '$penerbit', tahun = '$tahun', harga_pokok = '$harga_pokok', harga_jual = '$harga_jual', ppn = '$ppn', diskon = '$diskon' WHERE id_buku = '$id'";
  30.                 break;
  31.         }
  32.  
  33.         if ($db->query($query)) {
  34.             URL::Redirect('buku');
  35.         }else{
  36.             $error = 'Terjadi kesalahan, mohon coba kembali.';
  37.         }
  38.     }
  39.  
  40.     if (isset($_GET['id'])) {
  41.         $id = $_GET['id'];
  42.         switch ($_GET['act']) {
  43.             case 'edit':
  44.                 $data = $db->query("SELECT * FROM buku WHERE id_buku = '$id'");
  45.                 $row = $data->fetch_assoc();
  46.  
  47.                 $judul = $row['judul'];
  48.                 $noisbn = $row['noisbn'];
  49.                 $penulis = $row['penulis'];
  50.                 $penerbit = $row['penerbit'];
  51.                 $tahun = $row['tahun'];
  52.                 $stok = $row['stok'];
  53.                 $harga_pokok = $row['harga_pokok'];
  54.                 $harga_jual = $row['harga_jual'];
  55.                 $ppn = $row['ppn'];
  56.                 $diskon = $row['diskon'];
  57.                 $act = 'edit';
  58.  
  59.                 break;
  60.            
  61.             case 'delete':
  62.                 if ($db->query("DELETE FROM buku WHERE id_buku = '$id'")) {
  63.                     URL::Redirect('buku');
  64.                 }
  65.                 break;
  66.         }
  67.     }
  68.  
  69.     if (isset($_POST['filter'])) {
  70.         $tahun = $db->escape_string($_POST['tahun_keluar']);
  71.         $minimal = $db->escape_string($_POST['harga_minimal']);
  72.         $maksimal = $db->escape_string($_POST['harga_maksimal']);
  73.         $opsi = $db->escape_string($_POST['opsi_lain']);
  74.  
  75.         $query_basic = "SELECT * FROM buku";
  76.         $query_advance = "SELECT *, sum(a.jumlah) as jumlah_buku FROM penjualan a RIGHT JOIN buku b ON b.id_buku = a.id_buku";
  77.  
  78.         $kondisi = array();    
  79.  
  80.         if ($tahun != '') {
  81.             if ($opsi == 'terlaku' || $opsi == 'kurang_laku') {
  82.                 $kondisi[] = "b.tahun='$tahun'";
  83.             }else{             
  84.                 $kondisi[] = "tahun='$tahun'";
  85.             }
  86.         }
  87.  
  88.         if ($minimal != '' || $maksimal != '') {
  89.             if ($opsi == 'terlaku' || $opsi == 'kurang_laku') {
  90.                 $kondisi[] = "b.tahun BETWEEN '$minimal' AND '$maksimal'";
  91.             }else{             
  92.                 $kondisi[] = "tahun BETWEEN '$minimal' AND '$maksimal'";
  93.             }          
  94.         }
  95.  
  96.         $sql = $query_basic;
  97.         if ($opsi != '') {
  98.             switch ($opsi) {
  99.                 case 'terlaku':
  100.                         $sql = $query_advance;
  101.                         if (count($kondisi) > 0) {
  102.                             $sql .= " WHERE  ".implode(' AND ', $kondisi)."GROUP BY a.id_buku ORDER BY jumlah_buku DESC LIMIT 10";
  103.                         }                      
  104.                     break;
  105.  
  106.                 case 'kurang_laku':
  107.                         $sql = $query_advance;
  108.                         if (count($kondisi) > 0) {
  109.                             $sql .= " WHERE  ".implode(' AND ', $kondisi)."GROUP BY a.id_buku ORDER BY jumlah_buku ASC LIMIT 10";
  110.                         }                      
  111.                     break;
  112.  
  113.                 case 'grosir':
  114.                         if (count($kondisi) > 0) {
  115.                             $sql .= " WHERE  ".implode(' AND ', $kondisi)."AND diskon != '' ORDER BY diskon DESC";
  116.                         }                      
  117.                     break;
  118.                
  119.                 default:
  120.                         if (count($kondisi) > 0) {
  121.                             $sql .= " WHERE  ".implode(' AND ', $kondisi);
  122.                         }
  123.                     break;
  124.             }
  125.         }else{
  126.             if (count($kondisi) > 0) {
  127.                 $sql .= " WHERE  ".implode(' AND ', $kondisi);
  128.             }
  129.         }
  130.         $query = $db->query($sql);
  131.  
  132.         $tahun = $tahun;
  133.         $minimal = $minimal;
  134.         $maksimal = $maksimal;
  135.         $opsi = $opsi;             
  136.     }else{
  137.         $tahun = '';
  138.         $minimal = '';
  139.         $maksimal = '';
  140.         $opsi = '';
  141.  
  142.         $query = $db->query("SELECT * FROM buku ORDER BY id_buku DESC");
  143.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement