我希望以下功能选择某个$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();
}
答案 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。''');
这是我的解决方法