table = $data['table']; $this->column_order = $data['column_order']; $this->column_search = $data['column_search']; $this->order = $data['order']; if (array_key_exists('join', $data)) { $this->join = $data['join']; } if (array_key_exists('where', $data)) { $this->where = $data['where']; } if (array_key_exists('group', $data)) { $this->group = $data['group']; } if (array_key_exists('select', $data)) { $this->select = $data['select']; } } // private function _get_datatables_query($term=''){ //term is value of $_REQUEST['search']['value'] // $column = array('k.id_kota','k.nm_kota', 'p.nm_propinsi'); // $this->db->select('k.id_kota, k.nm_kota, p.nm_propinsi'); // $this->db->from('kota as k'); // $this->db->join('propinsi as p', 'p.id_propinsi = k.id_propinsi','left'); // $this->db->like('k.id_kota', $term); // $this->db->or_like('k.nm_kota', $term); // $this->db->or_like('p.nm_propinsi', $term); // if(isset($_REQUEST['order'])) // here order processing // { // $this->db->order_by($column[$_REQUEST['order']['0']['column']], $_REQUEST['order']['0']['dir']); // } // else if(isset($this->order)) // { // $order = $this->order; // $this->db->order_by(key($order), $order[key($order)]); // } // } private function _get_datatables_query() { if ($this->select!='') { $this->db->select($this->select); } $this->db->from($this->table); if (!empty($this->join)) { foreach ($this->join as $jo => $j) { $this->db->join($jo,$j); } } if (!empty($this->where)) { foreach ($this->where as $wh => $w) { $this->db->where($wh,$w); } } if ($this->group!='') { $this->db->group_by($this->group); } // $this->db->where("kodewil",$this->session->userdata("wilayah")); $i = 0; foreach ($this->column_search as $item) // looping awal { if($_POST['search']['value']) // jika datatable mengirimkan pencarian dengan metode POST { if($i===0) // looping awal { $this->db->group_start(); $this->db->like($item, $_POST['search']['value']); } else { $this->db->or_like($item, $_POST['search']['value']); } if(count($this->column_search) - 1 == $i) $this->db->group_end(); } $i++; } if(isset($_POST['order'])) { $this->db->order_by($this->column_order[$_POST['order']['0']['column']], $_POST['order']['0']['dir']); } else if(isset($this->order)) { $order = $this->order; $this->db->order_by(key($order), $order[key($order)]); } } function get_datatables() { $this->_get_datatables_query(); if($_POST['length'] != -1) $this->db->limit($_POST['length'], $_POST['start']); $query = $this->db->get(); return $query->result(); } function count_filtered() { $this->_get_datatables_query(); $query = $this->db->get(); return $query->num_rows(); } public function count_all() { $this->db->from($this->table); return $this->db->count_all_results(); } }