2016-08-29 5 views
-2

h3llo все,О недействительных agrument Foreach

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

if (($date_start !='') AND ($date_end !='')) { 
    foreach($qty_box_sector->query(' 
    SELECT *, COUNT(*) 
    FROM boxes 
    LEFT JOIN sectors ON sector_id = box_sector_id 
    LEFT JOIN users ON user_id = box_user_id 
    WHERE box_user_id = '.$user_id.' 
    AND box_create_date BETWEEN '.$date_start.' 00:00:00 AND '.$date_end.' 23:59:59 
    GROUP BY box_sector_id') as $row) { 
    ... echos here ... 
} 

Все работает хорошо, но когда я пытаюсь применить и/BETWEEN состояние, как это:

AND box_create_date BETWEEN '.$date_Start.' 00:00:00 AND '.$date_end.' 23:59:59 

у меня есть это предупреждение об

Warning: Invalid argument supplied for foreach() 

Что не так? :-)

+2

Посмотрите на код окраски. Вам не хватает '' 'before' как $ row) {' – RiggsFolly

+0

Простите, код ошибки/код прошлого, у меня уже есть 'перед как $ row) { –

+0

Итак, внесите код ошибки и покажите нам, что – RiggsFolly

ответ

2

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

if (($date_start !='') AND ($date_end !='')) { 
    foreach($qty_box_sector->query(
    "SELECT *, COUNT(*) 
    FROM boxes 
    LEFT JOIN sectors ON sector_id = box_sector_id 
    LEFT JOIN users ON user_id = box_user_id 
    WHERE box_user_id = '$user_id' 
    AND box_create_date BETWEEN '$date_start 00:00:00' 
          AND '$date_end 23:59:59' 
    GROUP BY box_sector_id") as $row) { 
    ... echos here ... 
} 
+0

:-) TKS для помощи –

Смежные вопросы