From 40dfa7d5c0dc8e4cb2c95e403b6b4b2c4bf70644 Mon Sep 17 00:00:00 2001 From: Matthijs Kuiper Date: Sat, 4 Feb 2017 16:05:45 +0100 Subject: Original UTStats beta 4.2.8 --- html/pages/graph_mbreakdown.php | 229 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 229 insertions(+) create mode 100755 html/pages/graph_mbreakdown.php (limited to 'html/pages/graph_mbreakdown.php') diff --git a/html/pages/graph_mbreakdown.php b/html/pages/graph_mbreakdown.php new file mode 100755 index 0000000..44ef717 --- /dev/null +++ b/html/pages/graph_mbreakdown.php @@ -0,0 +1,229 @@ + $hour_max) $hour_max = $r_ghours['res_count']; + $hour_sum += $r_ghours['res_count']; +} +if ($hour_max == 0) return; + +// Daily Breakdown +// We use WEEKDAY rather then DAYOFWEEK because now the week starts with Monday instead of Sunday +$sql_gdays = "SELECT WEEKDAY(time) AS res_day, COUNT(*) AS res_count +FROM uts_match WHERE $bgwhere GROUP by res_day"; +$q_gdays = mysql_query($sql_gdays) or die(mysql_error()); +$day_max = 0; +$day_sum = 0; +while ($r_gdays = mysql_fetch_array($q_gdays)) { + $gb_day[$r_gdays['res_day']] = $r_gdays['res_count']; + if ($r_gdays['res_count'] > $day_max) $day_max = $r_gdays['res_count']; + $day_sum += $r_gdays['res_count']; +} + +// Monthly Breakdown +$sql_gmonths = "SELECT MONTH(time) AS res_month, COUNT(*) AS res_count +FROM uts_match WHERE $bgwhere GROUP by res_month"; +$q_gmonths = mysql_query($sql_gmonths) or die(mysql_error()); +$month_max = 0; +$month_sum = 0; +while ($r_gmonths = mysql_fetch_array($q_gmonths)) { + $gb_month[$r_gmonths['res_month']] = $r_gmonths['res_count']; + if ($r_gmonths['res_count'] > $month_max) $month_max = $r_gmonths['res_count']; + $month_sum += $r_gmonths['res_count']; +} + +// very dirty hack, to deal with the $bgwhere containing an OR +// if it contains an OR, all literals should be prefixed with "m." +if (substr_count($bgwhere, ' or ') == 0){ + $bgwhere = 'm.' . $bgwhere; +} else { + $bgwhere = substr($bgwhere, 1, -1); + $part = explode(' or ', $bgwhere); + $bgwhere = ''; + foreach($part as $i){ + $bgwhere .= 'm.' . $i . ' OR '; + } + $bgwhere = '(' . substr($bgwhere, 0, -4) . ')'; +} + +// Country Breakdown +$sql_gcountries = "SELECT country AS res_country, COUNT(*) AS res_count FROM + (SELECT p.country AS country FROM uts_player AS p, uts_match AS m + WHERE m.id = p.matchid AND $bgwhere GROUP BY p.pid) AS res_table +GROUP BY res_country ORDER BY res_count DESC"; +$q_gcountries = mysql_query($sql_gcountries) or die(mysql_error()); +$country_max = 0; +$country_sum = 0; +$i = 0; +while ($r_gcountries = mysql_fetch_array($q_gcountries)) { + $gb_country[$i] = $r_gcountries['res_country'] . ";" . $r_gcountries['res_count']; + if ($r_gcountries['res_count'] > $country_max) $country_max = $r_gcountries['res_count']; + $country_sum += $r_gcountries['res_count']; + $i++; +} + +echo' + + + + +
+ + + + + + + + + + '; + +// Hourly +for ($i = 0; $i <= 23; $i++) { + if (!isset($gb_hour[$i])) $gb_hour[$i] = 0; + $title = $gb_hour[$i] .' ('. get_dp($gb_hour[$i] / $hour_sum * 100) .' %)'; + echo ''; +} + +echo ''; + +// Daily +for ($i = 0; $i <= 6; $i++) { + if (!isset($gb_day[$i])) $gb_day[$i] = 0; + $title = $gb_day[$i] .' ('. get_dp($gb_day[$i] / $day_sum * 100) .' %)'; + echo ''; +} + +echo ''; + +// Monthly +for ($i = 1; $i <= 12; $i++) { + if (!isset($gb_month[$i])) $gb_month[$i] = 0; + $title = $gb_month[$i] .' ('. get_dp($gb_month[$i] / $month_sum * 100) .' %)'; + echo ''; +} +echo ''; +echo' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Hourly, Daily and Monthly Activity '.$gtitle.'
'. $title .''. $title .''. $title .'
01234567891011121314151617181920212223MTWTFSSJFMAMJJASOND
+
+

'; + +global $a_countries; +// The number of different countries we want to display +$no_countries = 20; + +// Check if there are more countries then $no_countries; if so, we can have a "others" column +if ( count($gb_country) < $no_countries ){ + $max_cntry = count($gb_country); + $collspan = $max_cntry + 2; + $others = false; +} else { + $max_cntry = $no_countries; + $collspan = $max_cntry + 3; + $others = true; +} + +echo' + + + + +
+ + + + + + + + + '; + +// Countries +$x = 0; +for ($i = 0; $i < $max_cntry; $i++) { + if (!isset($gb_hour[$i])) $gb_hour[$i] = 0; + $country = explode(";",$gb_country[$i]); + $title = $a_countries[$country[0]] .': ' . $country[1] . ' ('. get_dp($country[1] / $country_sum * 100) .' %)'; + echo ''; + $x += $country[1]; +} +if($others){ + $countries_left = $country_sum - $x; + $title = 'Other Countries: ' . $countries_left . ' ('. get_dp($countries_left / $country_sum * 100) .' %)'; + echo ''; +}; + +echo ''; +echo' + '; + for ($i = 0; $i < $max_cntry; $i++) { + $country = explode(";",$gb_country[$i]); + $country = strtoupper($country[0]); + echo ''; + } +if($others){ + echo ''; +} +echo' + +
  Origin of Players  
'. $title .''. $title .'
' . $country . '--
+
+
'; +?> \ No newline at end of file -- cgit