я ООП начал только изучать, потому и торможу..
так вот в чём задача, есть выборка из БД, в ней условия прописаны в виде массива:
$date = date("Y-m-d");
//WHERE
$arFilter = array (
"IBLOCK_ID" => $arResult["ID"],
"ACTIVE" => "Y",
"ACTIVE_DATE" => "Y",
"CHECK_PERMISSIONS" => "Y",
">=PROPERTY_BEGINDATE" => $date,
"<=PROPERTY_BURNDATE" => $date,
);
Дело в чём
у меня есть список мероприятий, я вывожу на главную последние 3-5 из существующих, при этом мероприятия должны выводится по следующим условиям:
мероприятие должно быть > $date
мероприятие должно входить в отрезок
$date >= PROPERTY_BEGINDATE AND $date =< PROPERTY_BURNDATE
где: PROPERTY_BEGINDATE - дата начала вывода на главной (задаётся пользователем при вводе поста)
PROPERTY_BURNDATE - дата окончания вывода на главной.
то есть я могу написать пост и задать ему дату вывода на главной, например на завтра и чтобы через 3 дня оно скрылось..
Запарился я, собственно, с условием, которое представлено в виде массива. По логике получается, что мне нужно примерно такое условие:
$date = date("Y-m-d");
//WHERE
$arFilter = array (
"IBLOCK_ID" => $arResult["ID"],
"ACTIVE" => "Y",
"ACTIVE_DATE" => "Y",
"CHECK_PERMISSIONS" => "Y",
$date => ">=PROPERTY_BEGINDATE",
$date => "<=PROPERTY_BURNDATE",
);
то есть таким образом, чтобы $date оказалось между двух PROPERTY_BEGINDATE и PROPERTY_BURNDATE
Данный отрезок не выполняется, явно я ошибаюсь, то есть условия с датами просто игнорятся.
Как мне корректно задать условия для верного отображения данных?
Заранее благодарю за любые подсказки
Спустя 1 час, 27 минут, 34 секунды (19.03.2010 - 10:25) Oyeme написал(а):
Причём тут ООП?
Посмотри как раскидывается массив.
Выведи полностью sql.
Подвавть ввиде такого массива не очень удобно.
Как ты пропишешь OR ?
Вот библиотка PEAR для этого более удобна.
Посмотри как раскидывается массив.
Выведи полностью sql.
Подвавть ввиде такого массива не очень удобно.
Как ты пропишешь OR ?
Вот библиотка PEAR для этого более удобна.
Спустя 1 час, 7 минут, 9 секунд (19.03.2010 - 11:33) OrlenkoKN написал(а):
и правда.. причём тут ООП? o_O
вступил чего-то..
я просто компонент битрикса редактирую, вот и разбираюсь с кодом.. зачем мне OR? Если б написать обычным запросом, то вышло бы что-то типа:
и получилось бы всё замечательно..
а тут действительно неудобно
вступил чего-то..
я просто компонент битрикса редактирую, вот и разбираюсь с кодом.. зачем мне OR? Если б написать обычным запросом, то вышло бы что-то типа:
SELECT * FROM table
WHERE
$date => 'PROPERTY_BEGINDATE'
AND
$date <= 'PROPERTY_BURNDATE'
и получилось бы всё замечательно..
а тут действительно неудобно
Спустя 17 минут, 23 секунды (19.03.2010 - 11:50) Oyeme написал(а):
OR - тебе тут не надо,это для примера.
ТЫ подал массивом условие ,теперь выведи полностью sql с подставленными данными.Простым echo.
Сразу будет понятно, как он подставляется.ТАк тебе будет удобно его прописать.
ТЫ подал массивом условие ,теперь выведи полностью sql с подставленными данными.Простым echo.
Сразу будет понятно, как он подставляется.ТАк тебе будет удобно его прописать.