Вы можете иметь структуру таблицы, такую как
Player_Stats
players int
hour int
Тогда каждый час вы можете написать что-то вроде:
insert into Player_stats (players, hour) values(NUMBEROFPLAYERS, HOUR#)
;
Где HOUR # - это значение от 1 до X количества возможных часов (если вы хотите хранить вещи только в текущем журнале, в противном случае измените час на метку времени) .... вставка будет больше похожа на
insert into Player_Stats (players, timestamp) values(NUMBEROFPLAYERS, NOW());
Тогда вы получите свои данные с помощью:
select players, hour from Player_Stats
;
Или, если вы держите вещи вечно и хотите захватить диапазон с сегодняшнего дня до 2 дней назад:
select players, timestamp from Player_Stats where timestamp between now() and date_sub(timestamp, interval 2 day);
Тогда вы могли бы использовать библиотеку диаграмм, такую как Google Visualizations ... у них есть хорошая документация по форматированию данных специально для их различных диаграмм.