2016-12-01 7 views
0

У меня есть этот селектор:CakePHP - выбрать из базы данных с условием

$this->Table->find('list',array('contain'=>false,'conditions'=>array('status'=>1,'unit_id'=>null,'country_id'=>$countryId,'eday'=>$eday),'fields'=>'id')); 

И это отлично работает. Но теперь мне нужно иметь еще один я не могу найти, как это сделать;)

мне нужно выбрать все записи из таблицы, но с условием:

'eday'>=$eday AND 'eday'<$eday+7 

это его posibble в легком пути? Может быть, это глупый вопрос, но я не имею ехр в PHP;)

+0

Извините [code] 'eday'> = $ eday AND 'eday' <$ eday + 7 [/ code] –

ответ

1

В CakePHP эквивалент для and состояния является
Пример: column1 = 'value' AND column2 = 'value'

'AND' => array(
    'column1' => 'value', 
    'column2' => 'value' 
) 

Так ваш строитель запрос будет так

$this->Table->find('list',array(
    'contain' => false, 
    'conditions' => array(
     'status' => 1, 
     'unit_id' => null, 
     'country_id' => $country, 
     'AND' => array(
      'eday >=' => $eday, 
      'eday <' => ($eday+7) 
     ) 
    ), 
    'fields'=>'id' 
)); 
+0

Yeap, который отлично работает;) Спасибо за помощь! –

+0

Вы можете пометить это как ответ сейчас – Beginner

0

Просто пройти и массив с в текущем условиях массива:

$this->Table->find('list',array('contain'=>false, 'conditions'=>array('status'=>1,'unit_id'=>null,'country_id'=>$countryId,'eday'=>$eday, AND => array(array('eday >=' => $eday) , array('eday <' => $eday+7))), 'fields'=>'id')); 
+0

Нет, это дает мне «ОШИБКА ЗАВЕРШЕНА». –

+0

какая ошибка вы получаете ?? ошибка синтаксиса или ошибка базы данных ?? –

+0

Ошибка: произошла внутренняя ошибка. –