function rankAthletes($event) { global $glb_connection, $glb_connection_server; global $cfgEvalType, $strEvalTypeHeat; try { $eval = getEvaluationType($event); if ($eval == $cfgEvalType[$strEvalTypeHeat]) { // eval per heat $sql_athletes = "\r\n SELECT\r\n xSerienstart\r\n , result\r\n , result_attempts\r\n , miss\r\n , skip\r\n FROM\r\n tempresult\r\n ORDER BY\r\n xSerie \r\n , result DESC\r\n , result_attempts ASC\r\n , miss ASC;"; } else { //rank results from all heats together $sql_athletes = "\r\n SELECT\r\n xSerienstart\r\n , result\r\n , result_attempts\r\n , miss\r\n , skip\r\n FROM\r\n tempresult\r\n ORDER BY \r\n result DESC\r\n , result_attempts ASC\r\n , miss ASC;"; } $query_athletes = $glb_connection->prepare($sql_athletes); $query_athletes->execute(); $athletes = $query_athletes->fetchAll(PDO::FETCH_ASSOC); $heat = 0; $perf = array(); $perf_old = array(); $j = 1; $rank = 0; $naa = false; // set rank for every athlete foreach ($athletes as $athlete) { if ($eval == $cfgEvalType[$strEvalTypeHeat] && $heat != $athlete['xSerie']) { // new heat $j = 1; // restart ranking $perf_old[] = ''; } $perf = $athlete; unset($perf['xSerienstart']); unset($perf['skip']); if ($athlete['skip'] == 0 && ($athlete['result'] > 0 || $athlete['miss'] > 0)) { //check if DNS or DSQ if ($perf_old != $perf) { // check if same performance $rank = $j; if ($athlete['result_attempts'] > 0) { // check if passed height } } $rank_db = $rank; $j++; // increment ranking } else { $rank_db = 0; } $sql_update = "UPDATE serienstart SET\r\n Rang = {$rank_db}\r\n WHERE xSerienstart = :serienstart;"; $query_update = $glb_connection_server->prepare($sql_update); $query_update->bindValue(':serienstart', $athlete['xSerienstart']); $query_update->execute(); $perf_old = $perf; } } catch (PDOException $e) { trigger_error($e->getMessage()); } }
function rankAthletes($event) { global $glb_connection, $glb_connection_server; global $cfgEvalType, $strEvalTypeHeat; try { $settings = getTechSettings($event); $eval = getEvaluationType($event); if ($eval == $cfgEvalType[$strEvalTypeHeat]) { // eval per heat $sql_athletes = "\r\n SELECT\r\n *\r\n FROM\r\n tempresult\r\n ORDER BY\r\n xSerie"; for ($i = 1; $i <= $settings['round_attempts']; $i++) { $sql_athletes = $sql_athletes . ", Res" . $i . " DESC"; } } else { //rank results from all heats together $sql_athletes = "\r\n SELECT\r\n *\r\n FROM\r\n tempresult\r\n ORDER BY "; $comma = ""; // order by available result columns for ($i = 1; $i <= $settings['round_attempts']; $i++) { $sql_athletes = $sql_athletes . $comma . "Res" . $i . " DESC"; $comma = ", "; } } $query_athletes = $glb_connection->prepare($sql_athletes); $query_athletes->execute(); $athletes = $query_athletes->fetchAll(PDO::FETCH_ASSOC); $heat = 0; $perf_old[] = ''; $j = 1; $rank = 0; // set rank for every athlete foreach ($athletes as $athlete) { if ($eval == $cfgEvalType[$strEvalTypeHeat] && $heat != $athlete['xSerie']) { // new heat $j = 1; // restart ranking $perf_old[] = ''; } for ($i = 1; $i <= $settings['round_attempts']; $i++) { $perf[$i] = $athlete['Res' . $i]; } if ($athlete['skip'] == 0 && $athlete['Res1'] != 0) { //check if DNS or DSQ if ($perf_old != $perf) { // check if same performance $rank = $j; } $rank_db = $rank; $j++; // increment ranking } else { $rank_db = 0; } $sql_update = "UPDATE serienstart SET\r\n Rang = {$rank_db}\r\n WHERE xSerienstart = :serienstart;"; $query_update = $glb_connection_server->prepare($sql_update); $query_update->bindValue(':serienstart', $athlete['xSerienstart']); $query_update->execute(); $heat = $athlete['xSerie']; // keep current heat ID $perf_old = $perf; } } catch (PDOException $e) { trigger_error($e->getMessage()); } }