Einige nutzlose, aber interessante Statistiken\n"; } $statcount = 0; $teams = Query("SELECT id, name FROM wm_teams", RESOLVE_IDS); $users = Query("SELECT id, name FROM wm_users", RESOLVE_IDS); function MatchDesc($line) { global $teams; return "" . $teams[$line['teamA']]['name'] . " – " .$teams[$line['teamB']]['name'] . " (" . MatchGroup($line['class'], $line['number']) . ")"; } function PluralSingular($n, $sg, $pl) { return ($n == 1) ? $sg : $pl; } function Percent($num, $den) { return strval(intval(($num * 100.0) / $den)) . "%"; } function Multilist($l, $key) { $cnt = count($l); $s = "{$l[0][$key]}"; if ($cnt < 2) { return $s; } for ($i = 1; $i < ($cnt - 1); $i++) { $s = "$s, {$l[$i][$key]}"; } return "$s und " . $l[$cnt - 1][$key] . ""; } function worstbetter($a, $b) { return $b['x'] - $a['x']; } function namecmp($a, $b) { return strcasecmp($a['name'], $b['name']); } function GetTopBetters(& $res, & $totals) { if (!$res) $res = array(); for ($i = 0; $i < count($res); $i++) { $t = $totals[$res[$i]['user']]['cnt']; $res[$i]['total'] = $t; $res[$i]['x'] = $res[$i]['cnt'] * 100 - $t; } usort($res, 'worstbetter'); $xmax = count($res) ? $res[0]['x'] : 0; for ($i = count($res) - 1; $i > 0; $i--) { if ($res[$i]['x'] < $xmax) unset($res[$i]); } usort($res, 'namecmp'); return count($res); } $CurrMatchCount = intval(QuerySingleValue("SELECT COUNT(*) FROM wm_matches WHERE NOT ISNULL(goalsA)", 0)); $UntilNow = ($CurrMatchCount == MatchCount) ? "" : " bisher "; $Champion = ($CurrMatchCount == MatchCount) ? GetChampion() : 0; $ChampionTeamName = $Champion ? $teams[$Champion]['name'] : ""; //////////////////////////////////////////////////////////////////////////////// if ($CurrMatchCount == MatchCount) { $n = intval(QuerySingleValue("SELECT COUNT(cnt) FROM (SELECT COUNT(*) AS cnt FROM wm_bets GROUP BY user) AS x WHERE cnt>=$CurrMatchCount", 0)); $nmax = count($users); if (($n > 1) && ($n < $nmax)) { echo "
Nur $n von $nmax Tippern (" . Percent($n, $nmax); echo ") haben Tipps für alle $CurrMatchCount "; echo "Spiele abgegeben.
\n"; } } //////////////////////////////////////////////////////////////////////////////// $res = Query(<<Die meisten exakten Vorhersagen machten "; echo Multilist($res, 'name') . ": für jeweils $good von $nbets Tipps ("; echo Percent($good, $nbets) . ") gab es volle " . ScoreExact . " Punkte.
\n"; } else if (count($res) == 1) { echo "Die meisten exakten Vorhersagen machte "; echo $res[0]['name'] . ": für $good von $nbets Tipps ("; echo Percent($good, $nbets) . ") gab es volle " . ScoreExact . " Punkte.
\n"; } //////////////////////////////////////////////////////////////////////////////// $res = Query(<<Kein gutes Händchen hatten " . Multilist($res, 'name'); echo ", die nur für jeweils $good von $nbets Tipps ("; echo Percent($good, $nbets) . ") Punkte kassieren konnten.
\n"; } else if (count($res) == 1) { echo "Kein gutes Händchen: nur für $good "; echo "von $nbets Tipps (" . Percent($good, $nbets); echo ") gab es Punkte auf dem Zettel von {$res[0]['name']}.
\n"; } //////////////////////////////////////////////////////////////////////////////// $res = Query(<<Am einfachsten vorherzusehen war der Sieger des Spiels "; echo MatchDesc($line) . ": {$line['correct']} von {$line['bets']} Tippern"; echo " ($pc%) durften sich über Punkte für dieses Spiel freuen.
\n"; $line = $res[count($res) - 1]; $pc = intval($line['ratio']); echo "Kaum abzusehen war hingegen der Ausgang von " . MatchDesc($line); if ($line['correct'] == 0) { echo ": kein einziger der {$line['bets']} Tipper "; echo "hat Punkte für dieses Spiel erhalten.
\n"; } else if ($line['correct'] == 1) { echo ": für dieses Spiel erhielt nur ein einziger "; echo "von {$line['bets']} Tippern Punkte.\n"; } else { echo ": bei diesem Spiel "; echo " gingen nur {$line['correct']} von {$line['bets']} Tippern"; echo " ($pc%) nicht leer aus.\n"; } $statcount++; } //////////////////////////////////////////////////////////////////////////////// $TotalBets0 = Query("SELECT COUNT(*) AS cnt FROM wm_users WHERE NOT ISNULL(bet0) AND bet0 > 0"); $TotalBets0 = ($TotalBets0 && $TotalBets0[0]) ? $TotalBets0[0]['cnt'] : 0; $res = Query(<<Der häufigste " . ChampionName . "-Tipp "; echo "vor Turnierbeginn ist " . $teams[$team]['name'] . ": "; echo "$cnt von $TotalBets0 Tippern (" . Percent($cnt, $TotalBets0) . ") "; if ($team == $Champion) { echo "haben den Triumph dieser Mannschaft vorhergesehen.
\n"; } else if (!$Champion) { echo "würden diese Mannschaft gerne triumphieren sehen.\n"; } else { echo "hätten dieser Mannschaft den Triumph zugetraut.\n"; $res = Query("SELECT COUNT(*) AS cnt, $ANY_VALUE(name) AS name FROM wm_users WHERE bet0=$Champion GROUP BY bet0"); if ($res && $res[0]) { $cnt = $res[0]['cnt']; echo "Den tatsächlichen " . ChampionName. ", "; echo $teams[$Champion]['name'] . ", "; if ($cnt > 1) { echo "haben hingegen nur $cnt von $TotalBets0 Tippern ("; echo Percent($cnt, $TotalBets0) . ") korrekt vorausgesagt.
\n"; } else { echo "hat hingegen " . ($cnt ? "nur ein" : "kein"); echo " einziger Tipper auf dem Zettel gehabt"; if ($cnt) echo ", nämlich {$res[0]['name']}"; echo ".\n"; } } } } //////////////////////////////////////////////////////////////////////////////// $res = Query(<<Das am häufigsten getippte Ergebnis ist "; echo "$ga:$gb: $cnt von $TotalBets Tipps ("; echo Percent($cnt, $TotalBets) . ") gehen davon aus, dass "; echo "ein Spiel so endet.
\n"; $statcount++; } } //////////////////////////////////////////////////////////////////////////////// $res = Query(<<Das häufigste Spielergebnis ist "; echo "$ga:$gb: bei $cnt von $UntilNow $CurrMatchCount Partien ("; echo Percent($cnt, $CurrMatchCount) . ") trennten sich die Mannschaften "; echo "bei diesem Spielstand.
\n"; $statcount++; } //////////////////////////////////////////////////////////////////////////////// $res = Query(<<Den höchsten Sieg gab es mit "; else echo "
Die größte Niederlage gab es mit "; echo "{$line['goalsA']}:{$line['goalsB']} in der Partie "; echo MatchDesc($line) . ".
\n"; $statcount++; } //////////////////////////////////////////////////////////////////////////////// $res = Query(<<In dieser " . MatchType . " sind $UntilNow"; echo "insgesamt {$res[0]['totalgoals']} Tore gefallen.
\n"; $statcount++; } //////////////////////////////////////////////////////////////////////////////// $res = Query(<<Die meisten Tore "; echo "schoss {$line['name']}: "; echo "{$line['owngoals']}-mal ging der Ball ins Netz ihrer Gegner.
\n"; $statcount++; } $line = GetSingleMax($res, 'owngoals', -1); if ($line) { if ($line['owngoals']) { echo "Die wenigsten Tore (lediglich "; echo "{$line['owngoals']} an der Zahl) erzielte "; echo "{$line['name']}.
\n"; } else { echo "Die Mannschaft von {$line['name']} "; echo "blieb als einzige komplett torlos.
\n"; } $statcount++; } $line = GetSingleMax($res, 'antigoals', +1); if ($line && ($line['antigoals'] > 1)) { echo "Die meisten Gegentore, nämlich "; echo "{$line['antigoals']} Stück, "; echo "kassierte {$line['name']}.
\n"; $statcount++; } $line = GetSingleMax($res, 'antigoals', -1); if ($line) { if ($line['antigoals']) { echo "Die wenigsten Gegentore gab es für "; echo "{$line['name']}: nur "; echo "{$line['antigoals']}-mal ließ der Torwart "; echo "den Ball in den Kasten.
\n"; } else { echo "Nur {$line['name']} gelang es, "; echo "kein einziges Gegentor zu kassieren.
\n"; } $statcount++; } } //////////////////////////////////////////////////////////////////////////////// function ChampionBetHistogram($fld, $cls, $title, $cond=TRUE) { global $statcount, $ChampionTeamName; if ($cond && QuerySingleValue("SELECT MIN(time) <= NOW() FROM wm_matches WHERE class=$cls") && Histogram(<<Sorry, aber zur Zeit liegen noch keine Statistiken vor.
\n"; } if (!IncludeOnly) { EndPage(); CloseDB(); } ?>