Как я могу показать, какие дни и часы наиболее активны на веб-сайте с использованием PHP и MySQL? - PullRequest
1 голос
/ 23 ноября 2010

Я хочу сделать гистограмму на своем веб-сайте, которая показывает, какие дни недели и время суток имеют наибольшую активность / входы в систему.

Поэтому мне интересно, может ли кто-нибудь дать мне немногосоветы как они это сделают?Как мне организовать таблицы базы данных, какие данные собирать и как я могу представить данные, записанные в виде гистограммы, используя PHP.

Ответы [ 3 ]

1 голос
/ 23 ноября 2010

Может быть проще сделать визуализацию, используя журналы вашего сервера.Обработка (http://www.processing.org/) хороша для подобных вещей, или попробуйте http://processingjs.org/ для версии, отличной от Java.

Чтобы ответить на ваш вопрос, хотя, как уже упоминалось, сохраните данныевремя для каждого посещения (и, возможно, IP, если вы после уникальных посещений), затем напишите сценарий, чтобы получить записи и делать итоговые данные за каждый час.Вы можете использовать цветные div, с высотой, установленной на количество (или дробь) хитов.На самом деле это в основном счетчик обращений, не так ли?

Да, мой совет - проверить обработку, хотя ее легко подобрать и получить приятные на вид результаты.

0 голосов
/ 23 ноября 2010

Если вы должны сделать это самостоятельно, а не использовать уже существующий пакет. Начните с малого. Просто создайте одну таблицу, которая регистрирует каждый запрос, кто его сделал, время, реферер, любую информацию, которую вы хотите.

Как только вы зарегистрируете данные, если вы все еще не хотите использовать что-то вроде Google Charts, вы можете попробовать создать свои собственные простые PHP-диаграммы с использованием CSS и HTML.

Гистограммы могут быть довольно простыми, но для правильной работы требуется некоторая математика. Самый простой способ - перевернуть их на бок. Обычно вы видите их как здания, но в этом случае вы хотите видеть их как червеобразные трубы. Длина трубки может представлять количество посещений, просмотров страниц, посещений и т. Д.

Я бы определил фиксированную ширину для всей диаграммы и изменил бы ширину столбцов, чтобы они представляли процент от максимального значения. Таким образом, если максимальное значение равно 1000, а этот столбец равен 500, вы бы сделали его на 50% ширины вашего графика.

Надеюсь, это направит вас в правильном направлении. Делать что-то подобное может быть полезно для изучения новых концепций.

0 голосов
/ 23 ноября 2010

Вероятно, лучший способ сделать это - сохранить отметку даты и времени для каждого посещения или входа в систему. Затем вы можете использовать умные SQL-запросы для группировки информации по своему усмотрению (дни недели, время суток или что-либо еще.)

Таким образом, таблице базы данных, скорее всего, понадобится только первичный ключ и временная метка посещения, хотя вы также можете точно хранить информацию о пользователе или действии.

Для презентации попробуйте либо Google Charts (http://code.google.com/apis/chart/), либо библиотеку диаграмм на основе JavaScript) (есть несколько, у меня был хороший опыт работы с Highcharts http://www.highcharts.com/)

ps: Поскольку вы пометили этот пост как MySQL, я предполагаю, что это ваша база данных. Вот инструкция по созданию таблицы, которую вы можете использовать.

CREATE TABLE `visits` (
  `id` int(11) unsigned NOT NULL auto_increment,
  `created` datetime NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
...