Dan Becker's Games Site

Validate Score Points Totals

Purpose: Validate Scores Points Totals.Ensure that for all complete score records (Plays players = # Scores), that the player points totals sums to 0.

\n"; // debug$tempTable = "tempValidate";$sql = "DROP TABLE IF EXISTS $tempTable";$sqlResults = sqlQuery( $sql, false );// echo "DEBUG: Creating temp table.
\n"; // debug$sql = "CREATE TABLE IF NOT EXISTS $tempTable ( playid INT( 6 ), gamedate date, gameid INT( 6 ), gamename varchar( 64 ), players INT( 6 ), scoreplayers INT( 6 ), scorepoints INT( 6 ) )";$sqlResults = sqlQuery( $sql, false );// echo "DEBUG: Clearing temp table.
\n"; // debug// Empty if it exists.$sql = "DELETE FROM $tempTable";$sqlResults = sqlQuery( $sql, false );// This query moves all the plays/scores in the database.// echo "DEBUG: Inserting into temp table.
\n"; // DEBUG$sql = "INSERT INTO $tempTable ( playid, gamedate, gameid, gamename, players, scoreplayers, scorepoints ) SELECT $playTable.playid, $playTable.date, $playTable.gameid, $gameNamesTable.name, $playTable.players, COUNT( * ) AS ScorePlayers, SUM( points ) AS ScorePoints FROM $playTable, $scoreTable, $gameNamesTable WHERE ( $playTable.gameid = $gameNamesTable.gameid ) && ( $playTable.playid = $scoreTable.playid ) GROUP BY $scoreTable.playid";$sqlResults = sqlQuery( $sql, false );$sql = "SELECT COUNT( * ) AS Records FROM $tempTable";$sqlResults = sqlQuery( $sql, false );$data = mysql_fetch_array( $sqlResults, MYSQL_BOTH );$rowCount = $data[ "Records" ];echo "Now checking $rowCount records with complete scores.
\n";// Limitation: Cannot combine these selects since group names/functions// are not allowed in the where clause.// echo "DEBUG: Selecting bad records from temp table.
\n"; // DEBUG$sql = "SELECT playid, gamedate, gameid, gamename, players, scoreplayers, scorepoints FROM $tempTable WHERE ( players = scoreplayers ) && ( 0 != scorepoints )";$sqlResults = sqlQuery( $sql, false );$rowCount = mysql_num_rows( $sqlResults );if ( 0 < $rowCount ) { echo "The following $rowCount $scoreTable scores do not add to 0.
\n"; showResults( $sqlResults, true, 0, 30 );} else echo "All $scoreTable full scores add to 0.
\n";// Drop working table.// echo "DEBUG: Dropping temp table.
\n"; // DEBUG$sql = "DROP TABLE IF EXISTS $tempTable";$sqlResults = sqlQuery( $sql, false );?>

User menu |Admin menu