используя МЕЖДУ в ГДЕ состоянии - PullRequest
15 голосов
/ 30 марта 2012

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

   }

Ответы [ 5 ]

46 голосов
/ 30 марта 2012

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

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

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

РЕДАКТИРОВАНИЕ:
Глядя на эту ссылку Я думаю, вы могли бы написать:

$this->db->where("$accommodation BETWEEN $minvalue AND $maxvalue");
7 голосов
/ 07 марта 2016

В 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)).'"');
5 голосов
/ 08 августа 2014

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

$this->db->where( "$accommodation BETWEEN $minvalue AND $maxvalue", NULL, FALSE );
0 голосов
/ 12 июля 2019

Я думаю, мы можем написать так: $ this-> db-> where ('Accommodation> =', minvalue);$ this-> db-> where ('Accommodation <=', maxvalue); </p>

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

0 голосов
/ 27 февраля 2015

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...