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

Тема в разделе "PHP", создана пользователем TecT, 21 фев 2011.

Модераторы: latteo
  1. TecT

    TecT Пользователь для ТесТа

    Регистр.:
    25 фев 2009
    Сообщения:
    457
    Симпатии:
    44
    Сделал для радио подсчёт количества эфиров для каждого rj , но вот столкнулся с проблемой начался новый год и скрипт начинает подсчёт количества эфиров не правильно, то есть в 2010 году в феврале у человека было 72 эфира и в 2011 опять эти 72 эфира в феврале, хотя в феврале 2011 года у пользователя не было не одного эфира. Запрос выглядит так
    PHP:
    SELECT count(useridFROM event WHERE userid=and calendarid=1  and month(now())>=month(from_unixtime(dateline_from)) and month(now())<=month(from_unixtime(dateline_to))
    Помогите подправить чтоб считал именно текущий год и месяц, не как не могу разобраться.
     
  2. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    Ну добавить проверку на соответствие года в запрос нужно однозначно... А вот как именно это сделать, тут вопрос поинтереснее. Для корректного ответа нужно знать хотя бы приблизительную структуру таблицы и формат записываемой в неё даты...
     
  3. TecT

    TecT Пользователь для ТесТа

    Регистр.:
    25 фев 2009
    Сообщения:
    457
    Симпатии:
    44
    PHP:
    CREATE TABLE IF NOT EXISTS `event` (
      `
    eventidint(10unsigned NOT NULL AUTO_INCREMENT,
      `
    useridint(10unsigned NOT NULL DEFAULT '0',
      `
    eventmediumtext,
      `
    titlevarchar(250NOT NULL DEFAULT '',
      `
    allowsmiliessmallint(6NOT NULL DEFAULT '1',
      `
    recurringsmallint(6NOT NULL DEFAULT '0',
      `
    recuroptionchar(6NOT NULL DEFAULT '',
      `
    calendaridint(10unsigned NOT NULL DEFAULT '0',
      `
    customfieldsmediumtext,
      `
    visiblesmallint(6NOT NULL DEFAULT '0',
      `
    datelineint(10unsigned NOT NULL DEFAULT '0',
      `
    utcdecimal(4,2NOT NULL DEFAULT '0.00',
      `
    dstsmallint(6NOT NULL DEFAULT '1',
      `
    dateline_fromint(10unsigned NOT NULL DEFAULT '0',
      `
    dateline_toint(10unsigned 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
     
  4. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    Ой ё... я предполагаю что дата хранится в полях `dateline_from` и `dateline_to` вот только непонятно что это за даты... Могу только предположить что это время начала и конца одного эфира...
    возможно запрос должен выглядеть так:
    PHP:
    $time1=mktime(000212011); // метка времени начала февраля 2011
    $time2=mktime(000312011); // метка времени конца февраля 2011
    SELECT count(useridFROM event WHERE userid=and calendarid=1  and (dateline_from>=".$time1." and dateline_from ".$time2.");
    З.Ы. Совершенно не нужно было приводить полный дамп таблицы.. Достаточно было схематично всё отобразить типа:
    таблица состоит из полей:
    id_efir- ид эфира
    id_rj - ид радио жокея
    time1 - время начала эфира (юникс время в виде виде 1261702800)
    time2 - время конца эфира (юникс время в виде виде 1261702800)