Помогите подправить

TecT

Пользователь для ТесТа
Регистрация
25 Фев 2009
Сообщения
457
Реакции
45
Сделал для радио подсчёт количества эфиров для каждого rj , но вот столкнулся с проблемой начался новый год и скрипт начинает подсчёт количества эфиров не правильно, то есть в 2010 году в феврале у человека было 72 эфира и в 2011 опять эти 72 эфира в феврале, хотя в феврале 2011 года у пользователя не было не одного эфира. Запрос выглядит так
PHP:
SELECT count(userid) FROM event WHERE userid=1 and calendarid=1  and month(now())>=month(from_unixtime(dateline_from)) and month(now())<=month(from_unixtime(dateline_to))
Помогите подправить чтоб считал именно текущий год и месяц, не как не могу разобраться.
 
Ну добавить проверку на соответствие года в запрос нужно однозначно... А вот как именно это сделать, тут вопрос поинтереснее. Для корректного ответа нужно знать хотя бы приблизительную структуру таблицы и формат записываемой в неё даты...
 
PHP:
CREATE TABLE IF NOT EXISTS `event` (
  `eventid` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `userid` int(10) unsigned NOT NULL DEFAULT '0',
  `event` mediumtext,
  `title` varchar(250) NOT NULL DEFAULT '',
  `allowsmilies` smallint(6) NOT NULL DEFAULT '1',
  `recurring` smallint(6) NOT NULL DEFAULT '0',
  `recuroption` char(6) NOT NULL DEFAULT '',
  `calendarid` int(10) unsigned NOT NULL DEFAULT '0',
  `customfields` mediumtext,
  `visible` smallint(6) NOT NULL DEFAULT '0',
  `dateline` int(10) unsigned NOT NULL DEFAULT '0',
  `utc` decimal(4,2) NOT NULL DEFAULT '0.00',
  `dst` smallint(6) NOT NULL DEFAULT '1',
  `dateline_from` int(10) unsigned NOT NULL DEFAULT '0',
  `dateline_to` int(10) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`eventid`),
  KEY `userid` (`userid`),
  KEY `calendarid` (`calendarid`),
  KEY `visible` (`visible`),
  KEY `daterange` (`dateline_to`,`dateline_from`,`visible`,`calendarid`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3747 ;

дата хранится в таком виде 1261702800
 
Ой ё... я предполагаю что дата хранится в полях `dateline_from` и `dateline_to` вот только непонятно что это за даты... Могу только предположить что это время начала и конца одного эфира...
возможно запрос должен выглядеть так:
PHP:
$time1=mktime(0, 0, 0, 2, 1, 2011); // метка времени начала февраля 2011
$time2=mktime(0, 0, 0, 3, 1, 2011); // метка времени конца февраля 2011
SELECT count(userid) FROM event WHERE userid=1 and calendarid=1  and (dateline_from>=".$time1." and dateline_from < ".$time2.");

З.Ы. Совершенно не нужно было приводить полный дамп таблицы.. Достаточно было схематично всё отобразить типа:
таблица состоит из полей:
id_efir- ид эфира
id_rj - ид радио жокея
time1 - время начала эфира (юникс время в виде виде 1261702800)
time2 - время конца эфира (юникс время в виде виде 1261702800)
 
Назад
Сверху