Кинотавр
Новичок
Проблема в выводом статистики баннеров
Всех приветствую.
У меня возникла следующая проблема. Пишу систему сбора статистики баннеров. Собираются показы и переходы. В таблицу banner_stats при каждом показе или переходе вставляется новая запись.
Поля таблицы:
id (INT) - Идентификатор записи
banner (INT) - Идентификатор баннера
hit (INT) = 1 - Очередной показ
click (INT) =1 - Очередной переход
date (TIMESTAMP) - момент совершения показа или перехода
То есть, при очередном показе баннера происходит добавление в таблицу записи с hit=1, а при клике - click=1.
Далее в админке мне нужно все это отображать в виде графиков. И вот здесь подкрался... гм, в общем обозначились проблемы. ;-)
Пытаюсь делать такую выборку.
$result = mysql_query(" SELECT YEAR(date), MONTH(date), SUM(hit), SUM(click) FROM banner_stats WHERE banner='$id' GROUP BY YEAR(date), MONTH(date) ORDER BY YEAR(date) DESC, MONTH(date) DESC ", $cid);
Здесь должен выводиться список суммарных значений показов и переходов конкретного баннера за каждый месяц, отсортированный по убыванию даты.
У меня выводится список суммарных значений показов и переходов по месяцам, отсортированных по убыванию даты - НО ВСЕХ БАННЕРОВ СРАЗУ!
Насколько я понял в ходе ковыряния документации и кода, некорректен эпизод "GROUP BY YEAR(date), MONTH(date)". Вроде бы, в операторе GROUP BY нельзя отработать функции YEAR и MONTH над полем в формате TIMESTAMP.
Прав ли я в своих выводах?
И, если да, то каким же все-таки образом в данном случае можно получить список суммарных значений показов и переходов конкретного баннера за каждый месяц, отсортированный по убыванию даты?
Прошу помочь.
Спасибо.
Всех приветствую.
У меня возникла следующая проблема. Пишу систему сбора статистики баннеров. Собираются показы и переходы. В таблицу banner_stats при каждом показе или переходе вставляется новая запись.
Поля таблицы:
id (INT) - Идентификатор записи
banner (INT) - Идентификатор баннера
hit (INT) = 1 - Очередной показ
click (INT) =1 - Очередной переход
date (TIMESTAMP) - момент совершения показа или перехода
То есть, при очередном показе баннера происходит добавление в таблицу записи с hit=1, а при клике - click=1.
Далее в админке мне нужно все это отображать в виде графиков. И вот здесь подкрался... гм, в общем обозначились проблемы. ;-)
Пытаюсь делать такую выборку.
$result = mysql_query(" SELECT YEAR(date), MONTH(date), SUM(hit), SUM(click) FROM banner_stats WHERE banner='$id' GROUP BY YEAR(date), MONTH(date) ORDER BY YEAR(date) DESC, MONTH(date) DESC ", $cid);
Здесь должен выводиться список суммарных значений показов и переходов конкретного баннера за каждый месяц, отсортированный по убыванию даты.
У меня выводится список суммарных значений показов и переходов по месяцам, отсортированных по убыванию даты - НО ВСЕХ БАННЕРОВ СРАЗУ!
Насколько я понял в ходе ковыряния документации и кода, некорректен эпизод "GROUP BY YEAR(date), MONTH(date)". Вроде бы, в операторе GROUP BY нельзя отработать функции YEAR и MONTH над полем в формате TIMESTAMP.
Прав ли я в своих выводах?
И, если да, то каким же все-таки образом в данном случае можно получить список суммарных значений показов и переходов конкретного баннера за каждый месяц, отсортированный по убыванию даты?
Прошу помочь.
Спасибо.