如何在codeigniter中搜索日期范围

时间:2015-02-25 16:29:50

标签: mysql codeigniter

我尝试在列" tgl_lapor"中创建搜索数据使用日期范围,但仍然会出错。

这是我的模特

        function all($tgl_lapor,$id_tujuanlapor,$id_kategorilapor,$usergroup) {
        $this->db->select('*');
        $this->db->from('lapor');



        if($tgl_lapor!=""){

             $this->db->where("('tgl_lapor >=' ,$tgl_lapor) AND ('tgl_lapor <=' ,$tgl_lapor)");    

        }    

这个控制器

        public function index()
        { 

        $tgl_lapor = $this->input->get('tgl_lapor');

这个视图

                          <th>
                               <input type="text" class="form-control" name="tgl_lapor" placeholder="From">
                          </th> 

                          <th>
                               <input type="text" class="form-control" name="tgl_lapor" placeholder="To">
                          </th>

我收到错误

    Error Number: 1241

    Operand should contain 1 column(s)

    SELECT * FROM (`lapor`) WHERE ('tgl_lapor >=' ,2015-01-24) AND ('tgl_lapor <=' ,2015-01-24)

    Filename: D:\xampp\htdocs\zz\system\database\DB_driver.php

    Line Number: 330

1 个答案:

答案 0 :(得分:0)

2015-02-26更新:

嗨!

我猜测你需要将范围分成两个变量。

控制器

    public function index() { 
        $tgl_lapor_from = $this->input->get('tgl_lapor_from');
        $tgl_lapor_to = $this->input->get('tgl_lapor_to');
        ...
    }

查看

   <th>
       <input type="text" class="form-control" name="tgl_lapor_from" placeholder="From">
   </th>
   <th>
       <input type="text" class="form-control" name="tgl_lapor_to" placeholder="To">
   </th>

模型

function all($tgl_lapor_from, $tgl_lapor_to, $id_tujuanlapor, $id_kategorilapor, $usergroup){
 $this->db->select('*');
    $this->db->from('lapor');
    if($tgl_lapor_from!="" && $tgl_lapor_to!=""){
         $query = 'tgl_lapor BETWEEN "$tgl_lapor_from" AND "$tgl_lapor_to"'; 
         $this->db->where($query);    
    }
}

...否则,查询永远不会触及tgl_lapor列。你毕竟想要绑定两个不同的值(因为它是一个RANGE)。