<?php
$exec_output = false;
$start=explode(‘ ‘,microtime());
$link = mysql_connect(‘localhost’, ‘debugper_gostats’, ‘sttsg864@!’, true);
if (!$link) {
die(‘Could not connect: ‘ . mysql_error());
}
$db_selected = mysql_select_db(‘debugper_sagostats’, $link);
if (!$db_selected) {
die (‘Can\’t use go : ‘ . mysql_error());
}
$end = explode(‘ ‘,microtime());
$exec_time = $end[1]+$end[0] – $start[1] – $start[0];
if ($exec_output) echo "exec_time for Connection: ".$exec_time."</br></br>";
//Declare the primary array
$members = array();
$HISTORYDAYS = ’365′;
$months = ‘Twelve’;
//establish the most up to date date
$result = mysql_query(‘SELECT max(gamedate) as MaxGameDate FROM gostats_history’);
if (!$result) {
die(‘Invalid query: ‘ . mysql_error());
}
while ($loop = mysql_fetch_array($result))
{
$statsdate = $loop['MaxGameDate'];
}
echo "This page provides some moderately up to date statistics (current up to $statsdate).<p>";
//Select the members and their streaks from the gostats_member table
$result = mysql_query(‘SELECT MemberId, Name, LongestWinningStreak, LongestLosingStreak, CurrentWinningStreak, CurrentLosingStreak FROM gostats_member ORDER BY MemberId’);
if (!$result) {
die(‘Invalid query: ‘ . mysql_error());
}
while ($loop = mysql_fetch_array($result))
{
$member = new Member($loop['MemberId'], $loop['Name']);
$member->LongestWinningStreak = $loop['LongestWinningStreak'];
$member->LongestLosingStreak = $loop['LongestLosingStreak'];
$member->CurrentWinningStreak = $loop['CurrentWinningStreak'];
$member->CurrentLosingStreak = $loop['CurrentLosingStreak'];
$members[$loop['MemberId']] = $member;
}
//Establish most recent game
$start=explode(‘ ‘,microtime());
$result = mysql_query("SELECT MemberId, TO_DAYS(‘$statsdate’) – TO_DAYS(max( GameDate )) AS DaysSinceLastGame FROM gostats_history GROUP BY MemberId");
if (!$result) {
die(‘Invalid query: ‘ . mysql_error());
}
$end = explode(‘ ‘,microtime());
$exec_time = $end[1]+$end[0] – $start[1] – $start[0];
if ($exec_output) echo "exec_time for establish most recent game: ".$exec_time."</br>";
while ($loop = mysql_fetch_array($result)){
$members[$loop['MemberId']]->DaysSinceLastGame = $loop['DaysSinceLastGame'];
}
//Establish how many games in total have been played
$start=explode(‘ ‘,microtime());
$result = mysql_query("SELECT MemberId, count( HistoryId ) AS Busy FROM gostats_history WHERE MemberId <> OpponentMemberId AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) <= $HISTORYDAYS AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) > 0 GROUP BY MemberId");
if (!$result) {
die(‘Invalid query: ‘ . mysql_error());
}
$end = explode(‘ ‘,microtime());
$exec_time = $end[1]+$end[0] – $start[1] – $start[0];
if ($exec_output) echo "exec_time for Establish how many games in total have been played: ".$exec_time."</br>";
while ($loop = mysql_fetch_array($result)){
$members[$loop['MemberId']]->AllGamesCount = $loop['Busy'];
}
//Establish how many games in total have been played as Black
$start=explode(‘ ‘,microtime());
$result = mysql_query("SELECT MemberId, count( HistoryId ) AS Busy FROM gostats_history WHERE MemberId <> OpponentMemberId AND Colour=’B’ AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) <= $HISTORYDAYS AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) > 0 GROUP BY MemberId");
if (!$result) {
die(‘Invalid query: ‘ . mysql_error());
}
$end = explode(‘ ‘,microtime());
$exec_time = $end[1]+$end[0] – $start[1] – $start[0];
if ($exec_output) echo "exec_time for Establish how many games in total have been played as Black: ".$exec_time."</br>";
while ($loop = mysql_fetch_array($result)){
$members[$loop['MemberId']]->BlackGamesCount = $loop['Busy'];
$members[$loop['MemberId']]->BlackPlayRatio = $members[$loop['MemberId']]->BlackGamesCount / $members[$loop['MemberId']]->AllGamesCount;
}
//Establish how many rated games in total have been played as Black
$start=explode(‘ ‘,microtime());
$result = mysql_query("SELECT MemberId, count( HistoryId ) AS Busy FROM gostats_history WHERE MemberId <> OpponentMemberId AND Weight >0.0 AND Colour=’B’ AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) <= $HISTORYDAYS AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) > 0 GROUP BY MemberId");
if (!$result) {
die(‘Invalid query: ‘ . mysql_error());
}
$end = explode(‘ ‘,microtime());
$exec_time = $end[1]+$end[0] – $start[1] – $start[0];
if ($exec_output) echo "exec_time for Establish how many rated games in total have been played as Black: ".$exec_time."</br>";
while ($loop = mysql_fetch_array($result)){
$members[$loop['MemberId']]->RatedBlackGamesCount = $loop['Busy'];
}
//Establish how many rated games in total have been won as Black
$start=explode(‘ ‘,microtime());
$result = mysql_query("SELECT MemberId, count( HistoryId ) AS Busy FROM gostats_history WHERE MemberId <> OpponentMemberId AND Weight >0.0 AND Colour=’B’ AND Result = ‘W’ AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) <= $HISTORYDAYS AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) > 0 GROUP BY MemberId");
if (!$result) {
die(‘Invalid query: ‘ . mysql_error());
}
$end = explode(‘ ‘,microtime());
$exec_time = $end[1]+$end[0] – $start[1] – $start[0];
if ($exec_output) echo "exec_time for Establish how many rated games in total have been won as Black: ".$exec_time."</br>";
while ($loop = mysql_fetch_array($result)){
$members[$loop['MemberId']]->RatedBlackWinCount = $loop['Busy'];
$members[$loop['MemberId']]->RatedBlackWinRatio = $loop['Busy'] /$members[$loop['MemberId']]->RatedBlackGamesCount ;
}
//Establish how many rated games in total have been played as White
$start=explode(‘ ‘,microtime());
$result = mysql_query("SELECT MemberId, count( HistoryId ) AS Busy FROM gostats_history WHERE MemberId <> OpponentMemberId AND Weight >0.0 AND Colour=’W’ AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) <= $HISTORYDAYS AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) > 0 GROUP BY MemberId");
if (!$result) {
die(‘Invalid query: ‘ . mysql_error());
}
$end = explode(‘ ‘,microtime());
$exec_time = $end[1]+$end[0] – $start[1] – $start[0];
if ($exec_output) echo "exec_time for Establish how many rated games in total have been played as White: ".$exec_time."</br>";
while ($loop = mysql_fetch_array($result)){
$members[$loop['MemberId']]->RatedWhiteGamesCount = $loop['Busy'];
}
//Establish how many rated games in total have been won as White
$start=explode(‘ ‘,microtime());
$result = mysql_query("SELECT MemberId, count( HistoryId ) AS Busy FROM gostats_history WHERE MemberId <> OpponentMemberId AND Weight >0.0 AND Colour=’W’ AND Result = ‘W’ AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) <= $HISTORYDAYS AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) > 0 GROUP BY MemberId");
if (!$result) {
die(‘Invalid query: ‘ . mysql_error());
}
$end = explode(‘ ‘,microtime());
$exec_time = $end[1]+$end[0] – $start[1] – $start[0];
if ($exec_output) echo "exec_time for Establish how many rated games in total have been won as White: ".$exec_time."</br>";
while ($loop = mysql_fetch_array($result)){
$members[$loop['MemberId']]->RatedWhiteWinCount = $loop['Busy'];
$members[$loop['MemberId']]->RatedWhiteWinRatio = $loop['Busy'] /$members[$loop['MemberId']]->RatedWhiteGamesCount ;
}
//Establish how many games in total have been played as White
$start=explode(‘ ‘,microtime());
$result = mysql_query("SELECT MemberId, count( HistoryId ) AS Busy FROM gostats_history WHERE MemberId <> OpponentMemberId AND Colour=’W’ AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) <= $HISTORYDAYS AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) > 0 GROUP BY MemberId");
if (!$result) {
die(‘Invalid query: ‘ . mysql_error());
}
$end = explode(‘ ‘,microtime());
$exec_time = $end[1]+$end[0] – $start[1] – $start[0];
if ($exec_output) echo "exec_time for Establish how many games in total have been played as White: ".$exec_time."</br>";
while ($loop = mysql_fetch_array($result)){
$members[$loop['MemberId']]->WhiteGamesCount = $loop['Busy'];
$members[$loop['MemberId']]->WhitePlayRatio = $members[$loop['MemberId']]->WhiteGamesCount / $members[$loop['MemberId']]->AllGamesCount;
}
//Establish how many tournament games in total have been played (in last 2 years)
$start=explode(‘ ‘,microtime());
$result = mysql_query("SELECT MemberId, count( HistoryId ) AS Busy FROM gostats_history WHERE MemberId <> OpponentMemberId AND Weight>1.0 AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) <= 730 AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) > 0 GROUP BY MemberId");
if (!$result) {
die(‘Invalid query: ‘ . mysql_error());
}
$end = explode(‘ ‘,microtime());
$exec_time = $end[1]+$end[0] – $start[1] – $start[0];
if ($exec_output) echo "exec_time for Establish how many tournament games in total have been played (in last 2 years): ".$exec_time."</br>";
while ($loop = mysql_fetch_array($result)){
$members[$loop['MemberId']]->TournamentGamesCount = $loop['Busy'];
}
//Establish minimum and maximum rank
$start=explode(‘ ‘,microtime());
$result = mysql_query("SELECT MemberId, max(NormalizedRank) as MaxRank, min(NewNormalizedRank) as MinRank FROM gostats_history WHERE MemberId <> OpponentMemberId AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) <= $HISTORYDAYS AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) > 0 GROUP By MemberId");
if (!$result) {
die(‘Invalid query: ‘ . mysql_error());
}
$end = explode(‘ ‘,microtime());
$exec_time = $end[1]+$end[0] – $start[1] – $start[0];
if ($exec_output) echo "exec_time for Establish how many tournament games in total have been played (in last 2 years): ".$exec_time."</br>";
while ($loop = mysql_fetch_array($result)){
$members[$loop['MemberId']]->PreviousRank = $loop['MaxRank'];
$members[$loop['MemberId']]->CurrentRank = $loop['MinRank'];
$members[$loop['MemberId']]->RankChange = $loop['MaxRank'] – $loop['MinRank'];
}
//Establish Net Index Points
$start=explode(‘ ‘,microtime());
$result = mysql_query("SELECT MemberId, Count(HistoryId) as RatedGamesCount, Sum(Points)as NetIndexPoints, Sum(Points)/Count(HistoryId) as NetIndexPointAverage from gostats_history WHERE MemberId <> OpponentMemberId AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) <= $HISTORYDAYS and TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) > 0 and Weight>0.0 GROUP BY MemberId");
if (!$result) {
die(‘Invalid query: ‘ . mysql_error());
}
$end = explode(‘ ‘,microtime());
$exec_time = $end[1]+$end[0] – $start[1] – $start[0];
if ($exec_output) echo "exec_time for Establish Net Index Points: ".$exec_time."</br>";
while ($loop = mysql_fetch_array($result)){
$members[$loop['MemberId']]->RatedGamesCount = $loop['RatedGamesCount'];
$members[$loop['MemberId']]->NetIndexPoints = $loop['NetIndexPoints'];
$members[$loop['MemberId']]->NetIndexPointsAverage = $loop['NetIndexPointAverage'];
}
//Establish Normalized Net Index Points
$start=explode(‘ ‘,microtime());
$result = mysql_query("SELECT MemberId, Sum(Points/factor) as NormalizedNetIndexPoints, Sum(Points/factor)/Count(HistoryId) as NormalizedNetIndexPointsAverage from gostats_history, gostats_gamestatusfactor WHERE gostats_history.MemberId <> gostats_history.OpponentMemberId AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) <= $HISTORYDAYS and TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) > 0 and Weight>0.0 and gostats_gamestatusfactor.rank=gostats_history.Rank GROUP BY MemberId");
if (!$result) {
die(‘Invalid query: ‘ . mysql_error());
}
$end = explode(‘ ‘,microtime());
$exec_time = $end[1]+$end[0] – $start[1] – $start[0];
if ($exec_output) echo "exec_time for Establish Normalized Net Index Points: ".$exec_time."</br>";
while ($loop = mysql_fetch_array($result)){
$members[$loop['MemberId']]->NormalizedNetIndexPoints = $loop['NormalizedNetIndexPoints'];
$members[$loop['MemberId']]->NormalizedNetIndexPointsAverage = $loop['NormalizedNetIndexPointsAverage'];
}
//Establish number of rated wins
$start=explode(‘ ‘,microtime());
$result = mysql_query("SELECT MemberId, Count(HistoryId) as RatedWinCount from gostats_history WHERE gostats_history.MemberId <> gostats_history.OpponentMemberId AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) <= $HISTORYDAYS and TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) > 0 and Weight>0.0 and result=’W’ GROUP By MemberId");
if (!$result) {
die(‘Invalid query: ‘ . mysql_error());
}
$end = explode(‘ ‘,microtime());
$exec_time = $end[1]+$end[0] – $start[1] – $start[0];
if ($exec_output) echo "exec_time for Establish number of rated wins: ".$exec_time."</br>";
while ($loop = mysql_fetch_array($result)){
$members[$loop['MemberId']]->RatedWinCount = $loop['RatedWinCount'];
$members[$loop['MemberId']]->RatedWinRatio = $members[$loop['MemberId']]->RatedWinCount / $members[$loop['MemberId']]->RatedGamesCount;
}
//Establish number of rated losses
$start=explode(‘ ‘,microtime());
$result = mysql_query("SELECT MemberId, Count(HistoryId) as RatedLossCount from gostats_history WHERE gostats_history.MemberId <> gostats_history.OpponentMemberId AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) <= $HISTORYDAYS and TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) > 0 and Weight>0.0 and result<>’W’ GROUP By MemberId");
if (!$result) {
die(‘Invalid query: ‘ . mysql_error());
}
$end = explode(‘ ‘,microtime());
$exec_time = $end[1]+$end[0] – $start[1] – $start[0];
if ($exec_output) echo "exec_time for Establish number of rated losses: ".$exec_time."</br>";
while ($loop = mysql_fetch_array($result)){
$members[$loop['MemberId']]->RatedLossCount = $loop['RatedLossCount'];
}
//Establish number of tournament wins in last 2 years
$start=explode(‘ ‘,microtime());
$result = mysql_query("SELECT MemberId, Count(HistoryId) as TournamentWinCount from gostats_history WHERE gostats_history.MemberId <> gostats_history.OpponentMemberId AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) <= 730 and TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) > 0 and Weight>1.0 and result=’W’ GROUP By MemberId");
if (!$result) {
die(‘Invalid query: ‘ . mysql_error());
}
$end = explode(‘ ‘,microtime());
$exec_time = $end[1]+$end[0] – $start[1] – $start[0];
if ($exec_output) echo "exec_time for Establish number of tournament wins in last 2 years: ".$exec_time."</br>";
while ($loop = mysql_fetch_array($result)){
$members[$loop['MemberId']]->TournamentWinCount = $loop['TournamentWinCount'];
if ($members[$loop['MemberId']]->TournamentGamesCount>0)
{
$members[$loop['MemberId']]->TournamentWinRatio = $loop['TournamentWinCount'] / $members[$loop['MemberId']]->TournamentGamesCount;
}
else
{
$members[$loop['MemberId']]->TournamentWinRatio = 0.0;
}
}
//Establish number of tournament losses in last 2 years
$start=explode(‘ ‘,microtime());
$result = mysql_query("SELECT MemberId, Count(HistoryId) as TournamentLossCount from gostats_history WHERE gostats_history.MemberId <> gostats_history.OpponentMemberId AND TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) <= 730 and TO_DAYS(‘$statsdate’) – TO_DAYS(GameDate) > 0 and Weight>1.0 and result<>’W’ GROUP By MemberId");
if (!$result) {
die(‘Invalid query: ‘ . mysql_error());
}
$end = explode(‘ ‘,microtime());
$exec_time = $end[1]+$end[0] – $start[1] – $start[0];
if ($exec_output) echo "exec_time for Establish number of tournament losses in last 2 years: ".$exec_time."</br>";
while ($loop = mysql_fetch_array($result)){
$members[$loop['MemberId']]->TournamentLossCount = $loop['TournamentLossCount'];
}
global $SORTITEM;
global $DIRECTION;
echo "<p>";
echo "<p><b>Top Performers Over Last $months Months</b>";
echo "<p><table>";
echo "<tr><th align=\"center\">By Win/Loss Ratio</th><th align=\"center\">By Normalized Index Points</th></tr>";
echo "<tr><td><table border>";
$start=explode(‘ ‘,microtime());
$SORTITEM = ‘RatedWinRatio’;
$DIRECTION = ‘ASC’;
usort($members, ‘compare’);
echo "<tr><th>Player</th><th>Wins</th><th>Losses</th><th>Win Ratio</th></tr>";
$i=0;
$count=0;
while ($count < 10) {
if ($members[$i]->RatedGamesCount>=10){
echo "<tr><td>";
echo $members[$i]->Name;
echo "</td><td>";
echo $members[$i]->RatedWinCount;
echo "</td><td>";
echo $members[$i]->RatedLossCount;
echo "</td><td>";
echo number_format($members[$i]->RatedWinRatio*100, 1);
echo "%";
echo "</td></tr>";
$count++;
}
$i++;
}
echo "</table></td>";
$end = explode(‘ ‘,microtime());
$exec_time = $end[1]+$end[0] – $start[1] – $start[0];
if ($exec_output) echo "exec_time for building RatedWinRatio table: ".$exec_time."</br>";
$SORTITEM = ‘NormalizedNetIndexPointsAverage’;
$DIRECTION = ‘ASC’;
usort($members, ‘compare’);
echo "<td><table border>";
echo "<tr><th>Player</th><th>Avg Points per Game</th></tr>";
$i=0;
$count=0;
while ($count < 10) {
if ($members[$i]->RatedGamesCount>=10){
echo "<tr><td>";
echo $members[$i]->Name;
echo "</td><td>";
echo number_format($members[$i]->NormalizedNetIndexPointsAverage*100, 1);
echo "</td></tr>";
$count++;
}
$i++;
}
echo "</table></td></tr></table>";
$SORTITEM = ‘BlackWinRatio’;
$DIRECTION = ‘ASC’;
usort($members, ‘compare’);
echo "<p>";
echo "<p><b>Top Performers Over Last $months Months For Black and White (by Win/Loss)</b>";
echo "<br>(Wins as black/white divided by games played as black/white, excluding free games, minimum 10 games)";
echo "<table>";
echo "<tr><th align=\"center\">Black</th><th align=\"center\">White</th></tr>";
echo "<tr><td><table border>";
echo "<tr><th>Player</th><th>Played</th><th>Won</th><th>Win Ratio</th></tr>";
$i=0;
$count=0;
while ($count < 10) {
if ($members[$i]->RatedBlackGamesCount>=10){
echo "<tr><td>";
echo $members[$i]->Name;
echo "</td><td>";
echo $members[$i]->RatedBlackGamesCount;
echo "</td><td>";
echo $members[$i]->RatedBlackWinCount;
echo "</td><td>";
echo number_format($members[$i]->RatedBlackWinRatio*100, 1);
echo "%";
echo "</td></tr>";
$count++;
}
$i++;
}
echo "</table></td>";
//$SORTITEM = ‘BlackWinRatio’;
//$DIRECTION = ‘DESC’;
//usort($members, ‘compare’);
//echo "<p>";
//echo "<p><b>Worst Performers Over Last $months Months as Black (by Win/Loss)</b>";
//echo "<br>(Wins as black divided by games played as black, excluding free games, minimum 10 games as white)";
//echo "<p><table border>";
//echo "<tr><th>Player</th><th>Win Percentage</th></tr>";
//$i=0;
//$count=0;
//while ($count < 10) {
// if ($members[$i]->RatedGamesCount>=20){
// echo "<tr><td>";
// echo $members[$i]->Name;
// echo "</td><td>";
// echo number_format($members[$i]->RatedBlackWinRatio*100, 1);
// echo "</td></tr>";
// $count++;
// }
// $i++;
//}
//echo "</table>";
$SORTITEM = ‘WhiteWinRatio’;
$DIRECTION = ‘ASC’;
usort($members, ‘compare’);
//echo "<p>";
//echo "<p><b>Top Performers Over Last $months Months as White (by Win/Loss)</b>";
//echo "<br>(Wins as white divided by games played as white, excluding free games, minimum 10 games as white)";
//echo "<p><table border>";
echo "<td><table border>";
echo "<tr><th>Player</th><th>Played</th><th>Won</th><th>Win Ratio</th></tr>";
$i=0;
$count=0;
while ($count < 10) {
if ($members[$i]->RatedWhiteGamesCount>=10){
echo "<tr><td>";
echo $members[$i]->Name;
echo "</td><td>";
echo $members[$i]->RatedWhiteGamesCount;
echo "</td><td>";
echo $members[$i]->RatedWhiteWinCount;
echo "</td><td>";
echo number_format($members[$i]->RatedWhiteWinRatio*100, 1);
echo "%";
echo "</td></tr>";
$count++;
}
$i++;
}
echo "</table></td></tr></table>";
$SORTITEM = ‘RankChange’;
$DIRECTION = ‘ASC’;
usort($members, ‘compare’);
echo "<p>";
echo "<p><b>Greatest Rank Increase over Last $months Months</b>";
echo "<p><table border>";
echo "<tr><th>Player</th><th>$months Months Ago</th><th>Current</th></tr>";
$i=0;
while ($i < 10) {
echo "<tr><td>";
echo $members[$i]->Name;
echo "</td><td>";
echo $members[$i]->PreviousRank-7;
echo "k";
echo "</td><td>";
echo $members[$i]->CurrentRank-7;
echo "k";
echo "</td></tr>";
$i++;
}
echo "</table>";
$SORTITEM = ‘CurrentWinningStreak’;
$DIRECTION = ‘ASC’;
usort($members, ‘compare’);
echo "<p>";
echo "<p><b>Current Streaks</b>";
echo "<p><table>";
echo "<tr><th align=\"center\">Current Winning Streaks</th><th align=\"center\">Current Losing Streaks</th></tr>";
echo "<tr><td><table border>";
echo "<tr><th>Player</th><th>Wins</th></tr>";
$i=0;
$count=0;
while ($count < 5) {
echo "<tr><td>";
echo $members[$i]->Name;
echo "</td><td>";
echo $members[$i]->CurrentWinningStreak;
echo "</td></tr>";
$count++;
$i++;
}
echo "</table></td>";
$SORTITEM = ‘CurrentLosingStreak’;
$DIRECTION = ‘ASC’;
usort($members, ‘compare’);
//echo "<p>";
//echo "<p><b>Current Losing Streaks</b>";
//echo "<p><table border>";
echo "<td><table border>";
echo "<tr><th>Player</th><th>Losses</th></tr>";
$i=0;
$count=0;
while ($count < 5) {
echo "<tr><td>";
echo $members[$i]->Name;
echo "</td><td>";
echo $members[$i]->CurrentLosingStreak;
echo "</td></tr>";
$count++;
$i++;
}
echo "</table></td></tr></table>";
$SORTITEM = ‘LongestWinningStreak’;
$DIRECTION = ‘ASC’;
usort($members, ‘compare’);
echo "<p><table>";
echo "<tr><th align=\"center\">Longest Ever Winning Streaks</th><th align=\"center\">Longest Ever Losing Streaks</th></tr>";
echo "<tr><td><table border>";
echo "<tr><th>Player</th><th>Wins</th></tr>";
$i=0;
$count=0;
while ($count < 10) {
echo "<tr><td>";
echo $members[$i]->Name;
echo "</td><td>";
echo $members[$i]->LongestWinningStreak;
echo "</td></tr>";
$count++;
$i++;
}
echo "</table></td>";
$SORTITEM = ‘LongestLosingStreak’;
$DIRECTION = ‘ASC’;
usort($members, ‘compare’);
//echo "<p>";
//echo "<p><b>Longest Ever Losing Streaks</b>";
//echo "<p><table border>";
echo "<td><table border>";
echo "<tr><th>Player</th><th>Losses</th></tr>";
$i=0;
$count=0;
while ($count < 10) {
echo "<tr><td>";
echo $members[$i]->Name;
echo "</td><td>";
echo $members[$i]->LongestLosingStreak;
echo "</td></tr>";
$count++;
$i++;
}
echo "</table></td></tr></table>";
//$SORTITEM = ‘WhiteWinRatio’;
//$DIRECTION = ‘DESC’;
//usort($members, ‘compare’);
//echo "<p>";
//echo "<p><b>Worst Performers Over Last $months Months as White (by Win/Loss)</b>";
//echo "<br>(Wins as white divided by games played as white, excluding free games, minimum 20 games)";
//echo "<p><table border>";
//echo "<tr><th>Player</th><th>Win Percentage</th></tr>";
//$i=0;
//$count=0;
//while ($count < 10) {
// if ($members[$i]->RatedGamesCount>=20){
// echo "<tr><td>";
// echo $members[$i]->Name;
// echo "</td><td>";
// echo number_format($members[$i]->RatedWhiteWinRatio*100, 1);
// echo "</td></tr>";
// $count++;
// }
// $i++;
//}
//echo "</table>";
$SORTITEM = ‘TournamentWinRatio’;
$DIRECTION = ‘ASC’;
usort($members, ‘compare’);
echo "<p>";
echo "<p><b>Top Tournament Performers Over Last <u>TWO</u> Years (by Win/Loss)</b>";
echo "<br>(Tournament wins divided by tournament games played, minimum 10 games)";
echo "<p><table border>";
echo "<tr><th>Player</th><th>Wins</th><th>Losses</th><th>Win Percentage</th></tr>";
$i=0;
$count=0;
while ($count < 10) {
if ($members[$i]->TournamentGamesCount>=10){
echo "<tr><td>";
echo $members[$i]->Name;
echo "</td><td>";
echo $members[$i]->TournamentWinCount;
echo "</td><td>";
echo $members[$i]->TournamentLossCount;
echo "</td><td>";
echo number_format($members[$i]->TournamentWinRatio*100, 1);
echo "</td></tr>";
$count++;
}
$i++;
}
echo "</table>";
//$SORTITEM = ‘TournamentWinRatio’;
//$DIRECTION = ‘DESC’;
//usort($members, ‘compare’);
//echo "<p>";
//echo "<p><b>Worst Tournament Performers Over Last <u>TWO</u> Years (by Win/Loss)</b>";
//echo "<br>(Tournament wins divided by tournament games played, minimum 10 games)";
//echo "<p><table border>";
//echo "<tr><th>Player</th><th>Wins</th><th>Losses</th><th>Win Percentage</th></tr>";
//$i=0;
//$count=0;
//while ($count < 10) {
// if ($members[$i]->TournamentGamesCount>=10){
// echo "<tr><td>";
// echo $members[$i]->Name;
// echo "</td><td>";
// echo $members[$i]->TournamentWinCount;
// echo "</td><td>";
// echo $members[$i]->TournamentLossCount;
// echo "</td><td>";
// echo number_format($members[$i]->TournamentWinRatio*100, 1);
// echo "</td></tr>";
// $count++;
// }
// $i++;
//}
//echo "</table>";
$SORTITEM = ‘AllGamesCount’;
$DIRECTION = ‘ASC’;
usort($members, ‘compare’);
echo "<p><b>Most Active Players over Last $months Months</b>";
echo "<p><table border>";
echo "<tr><th>Player</th><th>Game Count</th></tr>";
$i=0;
while ($i < 10) {
echo "<tr><td>";
echo $members[$i]->Name;
echo "</td><td>";
echo $members[$i]->AllGamesCount;
echo "</td></tr>";
$i++;
}
echo "</table>";
$SORTITEM = ‘Sponger’;
$DIRECTION = ‘ASC’;
usort($members, ‘compare’);
echo "<p>";
echo "<b>Students and Teachers</b>";
echo "<br>(proportion of games played as black – students, and proportion of games played as white – teachers, minimum 10 games)";
echo "<table>";
echo "<tr><th align=\"center\">Students (black)</th><th align=\"center\">Teachers (white)</th></tr>";
echo "<tr><td><table border>";
echo "<tr><th>Player</th><th>Played</th><th>Proportion</tr>";
$i=0;
$count=0;
while ($count < 10) {
if ($members[$i]->BlackGamesCount>=10){
echo "<tr><td>";
echo $members[$i]->Name;
echo "</td><td>";
echo $members[$i]->BlackGamesCount;
echo "</td><td>";
echo number_format($members[$i]->BlackPlayRatio*100.0, 1);
echo "%";
echo "</td></tr>";
$count++;
}
$i++;
}
echo "</table></td>";
$SORTITEM = ‘Teacher’;
$DIRECTION = ‘ASC’;
usort($members, ‘compare’);
echo "<td><table border>";
echo "<tr><th>Player</th><th>Played</th><th>Proportion</tr>";
$i=0;
$count=0;
while ($count < 10) {
if ($members[$i]->WhiteGamesCount>=10){
echo "<tr><td>";
echo $members[$i]->Name;
echo "</td><td>";
echo $members[$i]->WhiteGamesCount;
echo "</td><td>";
echo number_format($members[$i]->WhitePlayRatio*100.0, 1);
echo "%";
echo "</td></tr>";
$count++;
}
$i++;
}
echo "</table></td></tr></table>";
mysql_close($link);
//Helper Functions
function direction($x)
{
if ($x==’ASC’)
return 1;
else
return -1;
}
function compare($x, $y)
{
global $SORTITEM;
global $DIRECTION;
if ($SORTITEM == ‘AllGamesCount’)
{
if ( $x->AllGamesCount == $y->AllGamesCount )
return 0;
else if ( $x->AllGamesCount < $y->AllGamesCount )
return 1 * direction($DIRECTION);
else
return -1 * direction($DIRECTION);
}
else if ($SORTITEM == ‘RankChange’)
{
if ( $x->RankChange == $y->RankChange )
{
if ($x->PreviousRank == $y->PreviousRank)
return 0;
else if ($x->PreviousRank > $y->PreviousRank)
return 1 * direction($DIRECTION);
else
return -1 * direction($DIRECTION);
}
else if ( $x->RankChange < $y->RankChange )
return 1;
else
return -1;
}
else if ($SORTITEM == ‘NetIndexPointsAverage’)
{
if ( $x->NetIndexPointsAverage == $y->NetIndexPointsAverage )
return 0;
else if ( $x->NetIndexPointsAverage < $y->NetIndexPointsAverage )
return 1 * direction($DIRECTION);
else
return -1 * direction($DIRECTION);
}
else if ($SORTITEM == ‘NormalizedNetIndexPointsAverage’)
{
if ( $x->NormalizedNetIndexPointsAverage == $y->NormalizedNetIndexPointsAverage)
return 0;
else if ( $x->NormalizedNetIndexPointsAverage < $y->NormalizedNetIndexPointsAverage)
return 1 * direction($DIRECTION);
else
return -1 * direction($DIRECTION);
}
else if ($SORTITEM == ‘RatedWinRatio’)
{
if ( $x->RatedWinRatio == $y->RatedWinRatio )
return 0;
else if ( $x->RatedWinRatio < $y->RatedWinRatio )
return 1 * direction($DIRECTION);
else
return -1 * direction($DIRECTION);
}
else if ($SORTITEM == ‘TournamentWinRatio’)
{
if ( $x->TournamentWinRatio == $y->TournamentWinRatio )
return 0;
else if ( $x->TournamentWinRatio < $y->TournamentWinRatio )
return 1 * direction($DIRECTION);
else
return -1 * direction($DIRECTION);
}
else if ($SORTITEM == ‘Teacher’)
{
if ( $x->WhitePlayRatio == $y->WhitePlayRatio )
return 0;
else if ( $x->WhitePlayRatio < $y->WhitePlayRatio )
return 1 * direction($DIRECTION);
else
return -1 * direction($DIRECTION);
}
else if ($SORTITEM == ‘Sponger’)
{
if ( $x->BlackPlayRatio == $y->BlackPlayRatio )
return 0;
else if ( $x->BlackPlayRatio < $y->BlackPlayRatio )
return 1 * direction($DIRECTION);
else
return -1 * direction($DIRECTION);
}
else if ($SORTITEM == ‘BlackWinRatio’)
{
if ( $x->RatedBlackWinRatio == $y->RatedBlackWinRatio )
return 0;
else if ( $x->RatedBlackWinRatio < $y->RatedBlackWinRatio )
return 1 * direction($DIRECTION);
else
return -1 * direction($DIRECTION);
}
else if ($SORTITEM == ‘WhiteWinRatio’)
{
if ( $x->RatedWhiteWinRatio == $y->RatedWhiteWinRatio )
return 0;
else if ( $x->RatedWhiteWinRatio < $y->RatedWhiteWinRatio )
return 1 * direction($DIRECTION);
else
return -1 * direction($DIRECTION);
}
else if ($SORTITEM == ‘LongestWinningStreak’)
{
if ( $x->LongestWinningStreak == $y->LongestWinningStreak )
return 0;
else if ( $x->LongestWinningStreak < $y->LongestWinningStreak )
return 1 * direction($DIRECTION);
else
return -1 * direction($DIRECTION);
}
else if ($SORTITEM == ‘CurrentWinningStreak’)
{
if ( $x->CurrentWinningStreak== $y->CurrentWinningStreak)
return 0;
else if ( $x->CurrentWinningStreak<= $y->CurrentWinningStreak && $y->DaysSinceLastGame<180)
return 1 * direction($DIRECTION);
else
return -1 * direction($DIRECTION);
}
else if ($SORTITEM == ‘CurrentLosingStreak’)
{
if ( $x->CurrentLosingStreak== $y->CurrentLosingStreak)
return 0;
else if ( $x->CurrentLosingStreak<= $y->CurrentLosingStreak && $y->DaysSinceLastGame<180)
return 1 * direction($DIRECTION);
else
return -1 * direction($DIRECTION);
}
else if ($SORTITEM == ‘LongestLosingStreak’)
{
if ( $x->LongestLosingStreak== $y->LongestLosingStreak)
return 0;
else if ( $x->LongestLosingStreak< $y->LongestLosingStreak)
return 1 * direction($DIRECTION);
else
return -1 * direction($DIRECTION);
}
}
//The Member class
class Member
{
var $MemberId;
var $Name;
var $LongestWinningStreak;
var $LongestLosingStreak;
var $CurrentWinningStreak;
var $CurrentLosingStreak;
var $PreviousRank;
var $CurrentRank;
var $RankChange;
var $AllGamesCount;
var $BlackGamesCount;
var $WhiteGamesCount;
var $RatedGamesCount;
var $TournamentGamesCount;
var $NetIndexPoints;
var $NormalizedNetIndexPoints;
var $NetIndexPointsAverage;
var $NormalizedNetIndexPointsAverage;
var $RatedWinCount;
var $RatedLossCount;
var $TournamentWinCount;
var $TournamentLossCount;
var $BlackPlayRatio;
var $WhitePlayRatio;
var $RatedBlackGamesCount;
var $RatedBlackWinCount;
var $RatedBlackWinRatio;
var $RatedWhiteGamesCount;
var $RatedWhiteWinCount;
var $RatedWhiteWinRatio;
var $RatedWinRatio;
var $TournamentWinRatio;
var $DaysSinceLastGame;
function Member($MemberId, $Name)
{
$this->MemberId = $MemberId;
$this->Name = $Name;
}
}
?>
Posted by Chris Welsh as at 5:28 PM, No Comments »
Recent Comments