在WHERE条件下使用BETWEEN

时间:2012-03-30 10:48:32

标签: php codeigniter

我希望以下功能选择某个$minvalue$maxvalue之间住宿的酒店。最好的方法是什么?

function gethotels($state_id,$city,$accommodation,$minvalue,$maxvalue,$limit,$pgoffset)
    {
        $this->db->limit($limit, $pgoffset);
        $this->db->order_by("id", "desc");
        $this->db->where('state_id',$state_id);
        $this->db->where('city',$city);

        // This one should become a between selector
        $this->db->where($accommodation,$minvalue); 

        $result_hotels = $this->db->get('hotels');
        return $result_hotels->result();

   }

6 个答案:

答案 0 :(得分:45)

你应该使用

$this->db->where('$accommodation >=', minvalue);
$this->db->where('$accommodation <=', maxvalue);

我不确定语法,所以如果不正确,请原谅 无论如何BETWEEN使用&gt; = min&amp;&amp; &LT; =最大
。 这就是我的例子。

<强>编辑:
this link我认为你可以写:

$this->db->where("$accommodation BETWEEN $minvalue AND $maxvalue");

答案 1 :(得分:7)

在Codeigniter中这是检查两个日期记录之间的简单方法......

$start_date='2016-01-01';
$end_date='2016-01-31';

$this->db->where('date BETWEEN "'. date('Y-m-d', strtotime($start_date)). '" and "'. date('Y-m-d', strtotime($end_date)).'"');

答案 2 :(得分:5)

听起来不错但有些问题可能会导致执行此查询: 我建议:

$this->db->where( "$accommodation BETWEEN $minvalue AND $maxvalue", NULL, FALSE );

答案 3 :(得分:0)

您可能还会遇到错误消息。 &#34;操作数类型冲突:日期与int不兼容。

在日期周围使用单引号。例如:$this->db->where("$accommodation BETWEEN '$minvalue' AND '$maxvalue'");

答案 4 :(得分:0)

我认为我们可以这样写: $ this-> db-> where('accommodation> =',minvalue); $ this-> db-> where('accommodation <=',maxvalue);

//没有美元($)符号 这对我有用:)

答案 5 :(得分:0)

$ this-> db-> where('accommodation BETWEEN''。$ sdate。''AND''。$ edate。''');

这是我的解决方法