Advertisement
Guest User

joinServerSide.php

a guest
Nov 9th, 2015
1,300
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.85 KB | None | 0 0
  1. <?php
  2.         function mysqliConnection()
  3.             {      
  4.                 // Database connection information
  5.                 $gaSql['user']     = 'root';
  6.                 $gaSql['password'] = '';  
  7.                 $gaSql['db']       = 'datatables_ku';  //Database
  8.                 $gaSql['server']   = 'localhost';  
  9.                 $gaSql['port']     = 3306; // 3306 is the default MySQL port
  10.                 $gaSql['charset']  = 'utf8';
  11.                 $db = new mysqli($gaSql['server'], $gaSql['user'], $gaSql['password'], $gaSql['db'], $gaSql['port']);
  12.                 if (mysqli_connect_error()) {
  13.                     die( 'Error connecting to MySQL server (' . mysqli_connect_errno() .') '. mysqli_connect_error() );
  14.                 }
  15.                
  16.                 if (!$db->set_charset($gaSql['charset'])) {
  17.                     die( 'Error loading character set "'.$gaSql['charset'].'": '.$db->error );
  18.                 }
  19.                 return $db;
  20.             }
  21.            
  22.         function Paging( $input )
  23.             {
  24.                 $sLimit = "";
  25.                 if ( isset( $input['iDisplayStart'] ) && $input['iDisplayLength'] != '-1' ) {
  26.                     $sLimit = " LIMIT ".intval( $input['iDisplayStart'] ).", ".intval( $input['iDisplayLength'] );
  27.                 }
  28.                
  29.                 return $sLimit;
  30.             }
  31.            
  32.            
  33.         function Ordering( $input, $aColumns )
  34.             {
  35.                 $aOrderingRules = array();
  36.                 if ( isset( $input['iSortCol_0'] ) ) {
  37.                     $iSortingCols = intval( $input['iSortingCols'] );
  38.                     for ( $i=0 ; $i<$iSortingCols ; $i++ ) {
  39.                         if ( $input[ 'bSortable_'.intval($input['iSortCol_'.$i]) ] == 'true' ) {
  40.                             $aOrderingRules[] =
  41.                             $aColumns[ intval( $input['iSortCol_'.$i] ) ]." "
  42.                             .($input['sSortDir_'.$i]==='asc' ? 'asc' : 'desc');
  43.                         }
  44.                     }
  45.                 }
  46.                
  47.                 if (!empty($aOrderingRules)) {
  48.                     $sOrder = " ORDER BY ".implode(", ", $aOrderingRules);
  49.                     } else {
  50.                     $sOrder = "";
  51.                 }
  52.                 return $sOrder;
  53.             }
  54.            
  55.         function Filtering( $aColumns, $iColumnCount, $input, $db )
  56.             {
  57.                 if ( isset($input['sSearch']) && $input['sSearch'] != "" ) {
  58.                     $aFilteringRules = array();
  59.                     for ( $i=0 ; $i<$iColumnCount ; $i++ ) {
  60.                         if ( isset($input['bSearchable_'.$i]) && $input['bSearchable_'.$i] == 'true' ) {
  61.                             $aFilteringRules[] = $aColumns[$i]." LIKE '%".$db->real_escape_string( $input['sSearch'] )."%'";
  62.                         }
  63.                     }
  64.                     if (!empty($aFilteringRules)) {
  65.                         $aFilteringRules = array('('.implode(" OR ", $aFilteringRules).')');
  66.                     }
  67.                 }
  68.                
  69.                 // Individual column filtering
  70.                 for ( $i=0 ; $i<$iColumnCount ; $i++ ) {
  71.                     if ( isset($input['bSearchable_'.$i]) && $input['bSearchable_'.$i] == 'true' && $input['sSearch_'.$i] != '' ) {
  72.                         $aFilteringRules[] = $aColumns[$i]."  LIKE '%".$db->real_escape_string($input['sSearch_'.$i])."%'";
  73.                     }
  74.                 }
  75.                
  76.                 if (!empty($aFilteringRules)) {
  77.                     $sWhere = "WHERE ".implode(" AND ", $aFilteringRules);
  78.                     } else {
  79.                     $sWhere = "WHERE 1=1 ";
  80.                 }
  81.                 return $sWhere;
  82.             }
  83.            
  84.  
  85.     mb_internal_encoding('UTF-8');
  86.     $aColumns = array('pv.nama_prov', 'kt.nama_kabkot', 'kc.nama_kec'); //Kolom Pada Tabel
  87.    
  88.     // Indexed column (used for fast and accurate table cardinality)
  89.     $sIndexColumn = 'id_kec';
  90.    
  91.     // DB table to use
  92.     $sTable = 'all_kecamatan'; // Nama Tabel
  93.     $sTable2 = 'all_kabkot'; // Nama Tabel
  94.     $sTable3 = 'all_provinsi'; // Nama Tabel
  95.    
  96.    
  97.     // Input method (use $_GET, $_POST or $_REQUEST)
  98.     $input =& $_POST;
  99.  
  100.    
  101.     $iColumnCount = count($aColumns);
  102.    
  103.     $db = mysqliConnection();
  104.     $sLimit = Paging( $input );
  105.     $sOrder = Ordering( $input, $aColumns );
  106.     $sWhere = Filtering( $aColumns, $iColumnCount, $input, $db );
  107.    
  108.     $aQueryColumns = array();
  109.     foreach ($aColumns as $col) {
  110.         if ($col != ' ') {
  111.             $aQueryColumns[] = $col;
  112.         }
  113.     }
  114.    
  115.     $sQuery = "
  116.    SELECT SQL_CALC_FOUND_ROWS pv.id_prov, pv.nama_prov,  kt.id_prov, kt.id_kabkot, kt.nama_kabkot,  kc.id_kabkot, kc.id_kec, kc.nama_kec
  117.    FROM ".$sTable2." AS kt
  118.     inner join ".$sTable3." AS pv  on
  119.     kt.id_prov=pv.id_prov
  120.     inner join ".$sTable." AS kc  on
  121.     kc.id_kabkot=kt.id_kabkot
  122.     ".$sWhere.$sOrder.$sLimit;
  123.    
  124.    
  125.     $rResult = $db->query( $sQuery ) or die($db->error);
  126.     // Data set length after filtering
  127.     $sQuery = "SELECT FOUND_ROWS()";
  128.     $rResultFilterTotal = $db->query( $sQuery ) or die($db->error);
  129.     list($iFilteredTotal) = $rResultFilterTotal->fetch_row();
  130.    
  131.     // Total data set length
  132.     $sQuery = "SELECT COUNT(kc.".$sIndexColumn.") FROM ".$sTable." AS kc INNER JOIN ".$sTable2." AS kt ON kc.id_kabkot = kt.id_kabkot  INNER JOIN ".$sTable3." AS pv ON pv.id_prov = kt.id_prov";
  133.     $rResultTotal = $db->query( $sQuery ) or die($db->error);
  134.     list($iTotal) = $rResultTotal->fetch_row();
  135.    
  136.     /**
  137.         * Output
  138.     */
  139.     $output = array(
  140.     "sEcho"                => intval($input['sEcho']),
  141.     "iTotalRecords"        => $iTotal,
  142.     "iTotalDisplayRecords" => $iFilteredTotal,
  143.     "aaData"               => array(),
  144.     );
  145.    
  146.     // Looping Data
  147.     while ( $aRow = $rResult->fetch_assoc() ) {
  148.         $row = array();
  149.        
  150.         $row = array( $aRow['nama_prov'], $aRow['nama_kabkot'], $aRow['nama_kec']);
  151.         $output['aaData'][] = $row;
  152.     }
  153.    
  154.     echo json_encode( $output );
  155. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement