Я хотел бы $minvalue
следующей функцией, чтобы выбрать отели с размещением между определенным $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(); }
Вы должны использовать
$this->db->where('$accommodation >=', minvalue); $this->db->where('$accommodation <=', maxvalue);
Я не уверен в синтаксисе, поэтому прошу прощения, если это неверно.
В любом случае BETWEEN
реализуется с использованием> = min && <= max.
Это смысл моего примера.
Редакция:
Глядя на эту ссылку, я думаю, вы могли бы написать:
$this->db->where("$accommodation BETWEEN $minvalue AND $maxvalue");
Звучит правильно, но некоторые проблемы могут создать выполнение этого запроса: я бы предложил:
$this->db->where( "$accommodation BETWEEN $minvalue AND $maxvalue", NULL, FALSE );
В Codeigniter Это простой способ проверить две записи даты …
$start_date='2016-01-01'; $end_date='2016-01-31'; $this->db->where('date BETWEEN "'. date('Ym-d', strtotime($start_date)). '" and "'. date('Ym-d', strtotime($end_date)).'"');
Вы также можете столкнуться с сообщением об ошибке. «Столкновение типа операнда: дата несовместима с int.
Используйте одинарные кавычки по датам. Например: $this->db->where("$accommodation BETWEEN '$minvalue' AND '$maxvalue'");