function showResults() { #---------------------------------------------------------------------- global $chosenRegionId, $chosenSingle, $chosenAverage; #------------------------------ # Prepare stuff for the query. #------------------------------ $regionCondition = regionCondition('result'); $limitCondition = 'LIMIT 120'; $valueSource = $chosenAverage ? 'average' : 'best'; $valueName = $chosenAverage ? 'Average' : 'Single'; #------------------------------ # Get results from database. #------------------------------ $limitNumber = 300; $ranks = getRanks($valueName, $chosenRegionId); list($rows, $header) = sumOfRanks($valueName, getAllEventIds(), $ranks, $limitNumber + 20); $header = preg_replace('/ +/', '|', preg_replace('/\\[\\w+\\]/', '', "Rank {$header} ")); foreach (dbQuery("SELECT id, name FROM Persons WHERE subId=1") as $person) { $personName[$person[0]] = $person[1]; } #------------------------------ # Show the table. #------------------------------ $numColumns = count($rows[0]) + 2; $headerAttributes = array(0 => "class='r'", 2 => "class='R2'", $numColumns - 1 => 'class="f"'); for ($i = 3; $i < $numColumns - 1; $i++) { $headerAttributes[$i] = "class='r'"; } tableBegin('results', $numColumns); tableCaption(true, chosenRegionName(true)); # tableHeader( explode( '|', $header), $headerAttributes ); $ctr = $previousSumOfRanks = 0; $showHeader = true; foreach ($rows as $row) { $showHeader |= $ctr % 20 == 0; list($personId, $sumOfRanks) = $row; $ctr++; $no = $sumOfRanks == $previousSumOfRanks ? '' : $ctr; if ($limitCondition && $no > $limitNumber) { break; } if ($showHeader && $no) { tableHeader(explode('|', $header), $headerAttributes); $showHeader = false; } for ($i = 2; $i < $numColumns - 2; $i++) { if (preg_match('/^(10|[1-9])$/', $row[$i])) { $row[$i] = "<span style='color:#0D0'>{$row[$i]}</span>"; } } $row[0] = personLink($row[0], $personName[$row[0]]); $row[] = ''; array_unshift($row, $no); tableRow($row); $previousSumOfRanks = $sumOfRanks; } tableEnd(); }
<?php if (!isset($onlyProvideFunctions)) { #--- Get event ranks $ranksSingle = getRanks('Single'); $ranksAverage = getRanks('Average'); #--- Sum of 3x3/4x4/5x5 ranks, single and average list($single) = sumOfRanks('Single', array('333', '444', '555'), $ranksSingle); list($average) = sumOfRanks('Average', array('333', '444', '555'), $ranksAverage); $lists[] = array("sum_ranks_345", "Sum of 3x3/4x4/5x5 ranks", "Single | Average", "[P] Person [N] Sum [n] 3x3 [n] 4x4 [n] 5x5 [T] | [P] Person [N] Sum [n] 3x3 [n] 4x4 [n] 5x5", my_merge($single, $average)); #--- Sum of all single ranks list($rows, $header) = sumOfRanks('Single', getAllEventIds(), $ranksSingle); $lists[] = array("sum_ranks_single", "Sum of all single ranks", "", $header, $rows); #--- Sum of all average ranks list($rows, $header) = sumOfRanks('Average', getAllEventIds(), $ranksAverage); $lists[] = array("sum_ranks_average", "Sum of all average ranks", "", $header, $rows); } #---------------------------------------------------------------------- function getRanks($sourceName, $regionId = '') { #---------------------------------------------------------------------- #--- Build query for the requested region $query = "SELECT eventId, personId, worldRank FROM Ranks{$sourceName}"; if (in_array($regionId, getAllUsedCountriesIds())) { $query = "SELECT eventId, personId, countryRank FROM Ranks{$sourceName}, Persons WHERE Persons.id=personId AND subId=1 AND countryId='{$regionId}'"; } if (in_array($regionId, getAllUsedContinentIds())) { $query = "SELECT eventId, personId, continentRank FROM Ranks{$sourceName}, Persons, Countries WHERE Persons.id=personId AND subId=1 AND Countries.id=countryId AND continentId='{$regionId}'"; } #--- Process the personal records, build ranks[event][person] foreach (dbQuery($query) as $row) {