Подтвердить что ты не робот

Используя условие МЕЖДУ В ГДЕ

Мне нужна следующая функция для выбора отелей с размещением между определенными $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();

   }
4b9b3361

Ответ 1

Вы должны использовать

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

Я не уверен в синтаксисе, поэтому прошу прощения, если это не так. В любом случае BETWEEN реализуется с использованием >= min && <= макс
. Это смысл моего примера.

Редакция:
Глядя на эта ссылка Я думаю, вы могли бы написать:

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

Ответ 2

В 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)).'"');

Ответ 3

Звучит правильно, но некоторые проблемы могут создать выполнение этого запроса: Я бы предложил:

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

Ответ 4

Возможно, вы также столкнетесь с сообщением об ошибке. "Столкновение типа операнда: дата несовместима с int.

Используйте одинарные кавычки вокруг дат. Например: $this->db->where("$accommodation BETWEEN '$minvalue' AND '$maxvalue'");

Ответ 5

Я думаю, что мы можем написать так: $this-> db-> where ('Accommodation> =', minvalue); $this-> db-> где ('размещение <=', максимальное значение);

//без знака доллара ($) у меня работает :)