2017-04-05 2 views
0

Ich bin eine Suchfunktion mit Schlüsselwort und Werte und einige Seitenumbruch bauen. aber wenn ich versuche, den Datumsbereich zwischen der Abfrage zu bekommen, erhält man nicht nur die richtigen Werte und übergibt alle Werte in der Datenbank. aber wenn ich versuche, mit Schlüsselwortwerten zu arbeiten, bekomme ich nur die richtigen Werte.Codeigniter, Suche zwischen Datum nicht erhalten Werte in der Datenbank

Modell

function get_allAspirasi($batas =null,$offset=null,$key=null,$start_date=null,$end_date=null) { 
     $selqry = 'a.* , s.id_status, s.nama_status'; 
     $this->db->select($selqry); 
     $this->db->from('t_aspirasi as a'); 
     $this->db->join('t_status s', 's.id_status = a.id_status', 'left'); 
     $this->db->order_by('a.id_aspirasi', 'DESC'); 
     if($start_date != null && $end_date != null){ 
      /*$this->db->where('a.tgl_input BETWEEN "'. date('Y-m-d', strtotime($start_date)). '" AND "'. date('Y-m-d', strtotime($end_date)).'"');*/ 
      $this->db->where('a.tgl_input >=', date('Y-m-d', strtotime($start_date))); 
      $this->db->where('a.tgl_input <=', date('Y-m-d', strtotime($end_date))); 
     } 
     if($batas != null){ 
      $this->db->limit($batas,$offset); 
     } 
     if ($key != null) { 
      $this->db->or_like($key); 
     } 
     $query = json_decode(json_encode($this->db->get()->result()), TRUE); 
     return $query; 
    } 

Controller

public function cari() 
    { 
     $this->breadcrumb->append('Halaman Utama','admin_unit'); 
     $this->breadcrumb->append('Kelola Aspirasi'); 

     date_default_timezone_set('Asia/Jakarta'); 
     $key= $this->input->get('key'); //method get key 
     $page=$this->input->get('per_page'); //method get per_page 
     $start_date = $this->input->get('from'); 
     $end_date = $this->input->get('to'); 

     $search=array(
      'perihal'=> $key, 
      'nama_status' => $key 
     ); //array pencarian yang akan dibawa ke model 

     $batas=1; //jlh data yang ditampilkan per halaman 
     if(!$page):  //jika page bernilai kosong maka batas akhirna akan di set 0 
      $offset = 0; 
     else: 
      $offset = $page; // jika tidak kosong maka nilai batas akhir nya akan diset nilai page terakhir 
     endif; 

     $config['page_query_string'] = TRUE; //mengaktifkan pengambilan method get pada url default 
     $config['base_url'] = base_url().'admin_unit/cari?'.$key; //url yang muncul ketika tombol pada paging diklik 
     $config['total_rows'] = $this->m_home->count_aspirasi_search($search,$start_date,$end_date); // jlh total barang 
     $config['per_page'] = $batas; //batas sesuai dengan variabel batas 

     $config['uri_segment'] = $page; //merupakan posisi pagination dalam url pada kesempatan ini saya menggunakan method get untuk menentukan posisi pada url yaitu per_page 

     $config['full_tag_open'] = '<ul class="pagination">'; 
     $config['full_tag_close'] = '</ul>'; 
     $config['first_link'] = '&laquo; First'; 
     $config['first_tag_open'] = '<li class="prev page">'; 
     $config['first_tag_close'] = '</li>'; 

     $config['last_link'] = 'Last &raquo;'; 
     $config['last_tag_open'] = '<li class="next page">'; 
     $config['last_tag_close'] = '</li>'; 

     $config['next_link'] = 'Next &rarr;'; 
     $config['next_tag_open'] = '<li class="next page">'; 
     $config['next_tag_close'] = '</li>'; 

     $config['prev_link'] = '&larr; Prev'; 
     $config['prev_tag_open'] = '<li class="prev page">'; 
     $config['prev_tag_close'] = '</li>'; 

     $config['cur_tag_open'] = '<li class="current"><a href="">'; 
     $config['cur_tag_close'] = '</a></li>'; 

     $config['num_tag_open'] = '<li class="page">'; 
     $config['num_tag_close'] = '</li>'; 
     $this->pagination->initialize($config); 
     $data['paging']=$this->pagination->create_links(); 
     $data['jlhpage']=$page; 

     $data['qbarang'] = $this->m_home->get_allAspirasi($batas,$offset,$search,$start_date,$end_date); //query model semua barang 
     print_r($data); 

VIEW

<div class="tujuan-surat grup"> 

    <form class="form-inline" method="get" action="<?php echo base_url('admin_unit/cari');?>">  
     <div class="form-group col-md-7"> 
      <label class="control-label input-sm col-md-2" for="from">Periode</label> 
      <div class="input-group col-md-10"> 
       <input class="form-control input-sm" type="text" id="from" name="from" placeholder="tanggal awal"> 
       <span class="input-group-addon"> s/d </span>   
       <input class="form-control input-sm" type="text" id="to" name="to" placeholder="tanggal akhir">   
      </div> 
     </div> 
     <div class="form-group" style="margin-right: 10px;"> 
      <input type="text" id="key" name="key" class="form-control input-sm" placeholder="cari aspirasi">     
     </div> 
     <button type="submit" class="btn-uin btn-inverse btn btn-small">Cari</button> 
    </form> 

</div> 

seine halten alle Werte immer noch w Wenn ich das Datum in DateInput eingeben. ich weiß nicht warum, aber ich denke, sein Fehler von meinem Modell.

danke im voraus!

+1

$ this-> db-> or_like ($ key); kannst du versuchen "und mögen" anstatt "oder mögen"? – bumperbox

+0

@bumperbox noch fehler –

+0

was ist Ihr exakter Fehler? –

Antwort

0

Ihr Modell sollte wie folgt sein:

function get_allAspirasi($batas =null,$offset=null,$key=array(),$start_date=null,$end_date=null) { 

    if($batas != null){ 
     $this->db->limit($batas,$offset); 
    } 

    $this->db->select('a.* , s.id_status, s.nama_status'); 
    $this->db->from('t_aspirasi as a'); 
    $this->db->join('t_status s', 's.id_status = a.id_status', 'left'); 
    $this->db->order_by('a.id_aspirasi', 'DESC'); 
    if($start_date != null && $end_date != null){ 
     /*$this->db->where('a.tgl_input BETWEEN "'. date('Y-m-d', strtotime($start_date)). '" AND "'. date('Y-m-d', strtotime($end_date)).'"');*/ 
     $this->db->where('a.tgl_input >=', date('Y-m-d', strtotime($start_date))); 
     $this->db->where('a.tgl_input <=', date('Y-m-d', strtotime($end_date))); 
    } 

    if (!emppty($key)) { 
     $this->db->like($key); 
    } 
    $query = $this->db->get(); 
    $result = $query->result_array(); 
    return $result; 
} 
Verwandte Themen