Example #1
0
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());
    }
}
Example #2
0
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());
    }
}