- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем привет.
Помогите, пожалуйста, решить одну задачку. Мне кажется решение тривиальное, но не будучи программистом, у меня пока никак не получается.
Суть. Есть сайт Joomla с компонентом eventlist. Есть некоторые события, для которых задается дата и время начала, и при открытие сайта выводится список не состоявшихся еще событий. На текущий момент это происходит таким образом, что при загрузке проверяются даты начала событий, и все события с вчерашними или более старыми датами удаляются. Мне же нужно слегка подправить код, чтобы учитывалось не только дата события, но и время события и соответственно из базы удалялись события дата И время которых старее текущих. Другими словами к проверки просроченности события добавить еще проверку времени.
Вот текущий кусок кода, который как мне кажется и отвечает за работу данной функции:
if ($elsettings->oldevent == 1) {
$query = 'DELETE FROM #__eventlist_events WHERE DATE_SUB(NOW(), INTERVAL 1 DAY) > (IF (enddates <> '.$nulldate.', enddates, dates))';
$db->SetQuery( $query );
$db->Query();
}
пояснения:
enddates - протяженность события (не играет роли, оно всегда нулевое)
dates - только дата начала события в формате Y-m-d.
times - время в формате ЧЧ:ММ (24ч)
В этой выборке не используется поле times которое есть в таблице базы, но оно в этом запросе и сравнение не используется.
Логику текущего кода я понимаю так.. удалить все события старее чем начало текущего дня.
Думаю я бы справился сам, если бы в таблице в одном поле хранилось и дата и время. А так получается, что они в разных полях. В итоге, в левой части текущая дата и время со сдвигом в 1 день назад, а в правой части неравенства только дата события и без учета времени события, которое хранится в отдельном поле times.
Может кто подскажет, как сделать правильное сравнение, куда и как запихнуть этот times чтобы удалялись события с учетом не только даты, но и времени начала события. Ведь все данные для этого есть, остается их только как то правильно подставить в выборку.
---------- Добавлено 24.01.2012 в 11:53 ----------
Проблема решена SQL запрос:
$query = 'DELETE FROM #__eventlist_events WHERE (CURDATE() >= dates AND CURTIME() > times) OR CURDATE() > dates ';