void Statistics::load() { using namespace Database; SelectQuery query; query.addColumn("statistics", "stat_type"); query.addColumn("statistics", "stat_players"); query.addColumn("statistics", "stat_bin"); query.addColumn("statistics", "stat_count"); query.addEqualCondition<int>("statistics", "stat_version", versionId); query.addServerTable("statistics"); auto result = query.execute(); for (const auto &row : result) { int type = row["stat_type"].as<int>(); int players_online = row["stat_players"].as<int>(); int bin = row["stat_bin"].as<int>(); int count = row["stat_count"].as<int>(); while (statisticsDB[type].size() <= static_cast<size_t>(players_online)) { statisticsDB[type].emplace_back(); } statisticsDB[type][players_online][bin] = count; } }
void Statistics::loadTypes() { using namespace Database; SelectQuery query; query.addColumn("statistics_types", "stat_type_id"); query.addColumn("statistics_types", "stat_type_name"); query.addServerTable("statistics_types"); auto result = query.execute(); for (const auto &row : result) { types.emplace(row["stat_type_name"].as<std::string>(), row["stat_type_id"].as<int>()); } }