示例#1
0
function updateResultTable($athlete, $event, $startHeight)
{
    global $glb_connection, $glb_connection_server;
    global $glb_results_skip;
    global $glb_high_attempt_passed, $glb_high_attempt_failed, $glb_high_attempt_waived;
    try {
        $settings = getHighSettings($event);
        $sql_ath = "SELECT xSerienstart AS ath_id\r\n                        , xSerie\r\n                        , IF((SELECT COUNT(*) FROM resultat WHERE xSerienstart = serienstart.xSerienstart AND Leistung IN (" . implode(',', $glb_results_skip) . ")), 1, 0) AS skip\r\n                        , Starthoehe AS ath_start\r\n                        , Position AS ath_pos\r\n                    FROM serienstart\r\n                    WHERE xSerienstart = :serienstart;";
        $query_ath = $glb_connection_server->prepare($sql_ath);
        $query_ath->bindValue(':serienstart', $athlete);
        $query_ath->execute();
        $ath = $query_ath->fetch(PDO::FETCH_ASSOC);
        $xSerienstart = $ath['ath_id'];
        $position = $ath['ath_pos'];
        $xSerie = $ath['xSerie'];
        $skip = $ath['skip'];
        $sql_res = "SELECT \r\n                        xSerienstart\r\n                        , Leistung AS result_max\r\n                        , Info AS result_info\r\n                    FROM\r\n                        resultat \r\n                        LEFT JOIN serienstart USING (xSerienstart) \r\n                    WHERE xSerienstart = :serienstart \r\n                        AND Info LIKE '%" . $glb_high_attempt_passed . "%'\r\n                    ORDER BY Leistung DESC\r\n                    LIMIT 1;";
        $query_res = $glb_connection_server->prepare($sql_res);
        $query_res->bindValue(':serienstart', $xSerienstart);
        $query_res->execute();
        $result = $query_res->fetch(PDO::FETCH_ASSOC);
        $result_res = $result['result_max'] ? $result['result_max'] : 0;
        $res_attempts = substr_count($result['result_info'], $glb_high_attempt_failed) + 1;
        $sql_miss = "SELECT \r\n                        xSerienstart\r\n                        , Leistung AS result\r\n                        , Info AS result_info\r\n                    FROM\r\n                        resultat \r\n                        LEFT JOIN serienstart USING (xSerienstart) \r\n                    WHERE xSerienstart = :serienstart \r\n                        AND Info LIKE '%" . $glb_high_attempt_failed . "%';";
        $query_miss = $glb_connection_server->prepare($sql_miss);
        $query_miss->bindValue(':serienstart', $xSerienstart);
        $query_miss->execute();
        $results_miss = $query_miss->fetchAll(PDO::FETCH_ASSOC);
        $miss = 0;
        foreach ($results_miss as $result_miss) {
            $miss = $miss + substr_count($result_miss['result_info'], $glb_high_attempt_failed);
        }
        $sql_heights = "SELECT serie\r\n                            , height\r\n                            FROM t_heights\r\n                            WHERE serie = :serie\r\n                            ORDER BY height ASC;";
        $query_heights = $glb_connection->prepare($sql_heights);
        $query_heights->bindValue(':serie', $event);
        $query_heights->execute();
        $heights = $query_heights->fetchAll(PDO::FETCH_ASSOC);
        $sql_maxHeight = "SELECT MAX(height) as max_height\r\n                                FROM t_heights\r\n                                WHERE serie = :serie\r\n                                ORDER BY height ASC;";
        $query_maxHeight = $glb_connection->prepare($sql_maxHeight);
        $query_maxHeight->bindValue(':serie', $event);
        $query_maxHeight->execute();
        $maxHeight = $query_maxHeight->fetch(PDO::FETCH_ASSOC);
        $maxHeight = $maxHeight['max_height'];
        $diff = $maxHeight < $settings['diff_1_until'] ? $settings['diff_1_value'] : $settings['diff_2_value'];
        $curr_height = $maxHeight + $diff;
        $curr_miss = 0;
        $out = checkOut($athlete);
        if ($out) {
            $curr_height = 0;
            $curr_miss = 0;
        } else {
            foreach ($heights as $height) {
                if ($height['height'] >= $startHeight) {
                    $sql_check = "SELECT Info\r\n                                    FROM resultat\r\n                                    WHERE Leistung = :height\r\n                                        AND xSerienstart = :serienstart;";
                    $query_check = $glb_connection_server->prepare($sql_check);
                    $query_check->bindValue(':height', $height['height']);
                    $query_check->bindValue(':serienstart', $athlete);
                    $query_check->execute();
                    if ($query_check->rowCount() == 0) {
                        $curr_height = $height['height'];
                        $curr_miss = 0;
                        break;
                    } else {
                        $check = $query_check->fetch(PDO::FETCH_ASSOC);
                        $check_miss = substr_count($check['Info'], $glb_high_attempt_failed);
                        $check_skip = substr_count($check['Info'], $glb_high_attempt_passed) + substr_count($check['Info'], $glb_high_attempt_waived);
                        if ($check_miss > 0 && $check_skip == 0) {
                            $curr_height = $height['height'];
                            $curr_miss = $check_miss;
                            break;
                        }
                    }
                }
            }
        }
        $sql_insert = "UPDATE tempresult SET\r\n                                            skip = :skip\r\n                                            , result = :result\r\n                                            , result_attempts = :res_attempts\r\n                                            , miss = :miss\r\n                                            , ath_out = :out\r\n                                            , curr_height = :curr_height\r\n                                            , curr_miss = :curr_miss\r\n                                            WHERE xSerienstart = :serienstart;";
        $query_insert = $glb_connection->prepare($sql_insert);
        $query_insert->bindValue(':serienstart', $athlete);
        $query_insert->bindValue(':skip', $skip);
        $query_insert->bindValue(':result', $result_res);
        $query_insert->bindValue(':res_attempts', $res_attempts);
        $query_insert->bindValue(':miss', $miss);
        $query_insert->bindValue(':out', $out);
        $query_insert->bindValue(':curr_height', $curr_height);
        $query_insert->bindValue(':curr_miss', $curr_miss);
        $query_insert->execute();
    } catch (PDOException $e) {
        trigger_error($e->getMessage());
    }
}
示例#2
0
            $currentAttempt = $currentAthlete['curr_miss'] + 1;
            $currentAthleteData = getAthleteDetails($currentAthleteID, false, 'ath_pos', '0', true);
            $nextAthlete = getNextAthlete($athletes, $currentAthlete);
            $nextAthleteID = $nextAthlete['ath_id'];
            $nextHeight = $nextAthlete['curr_height'];
            if ($nextAthleteID == 0) {
                $last = true;
                $nextAthleteID == getFirstAthlete($athletes);
            } else {
                $last = false;
            }
            $nextAthleteData = getAthleteDetails($nextAthleteID, false, 'ath_pos', '0', true);
            $nextAttempt = $nextAthlete['curr_miss'] + 1;
        }
    }
    $settings = getHighSettings(CFG_CURRENT_EVENT);
    ?>
    <input type="hidden" name="round" id="round" value="<?php 
    echo $events['xRunde'];
    ?>
">
    <input type="hidden" name="event" id="event" value="<?php 
    echo $events['xWettkampf'];
    ?>
">
    
    <?php 
    if (!$checkStartHeights) {
        ?>
        <?php 
        echo $lg['HEIGHTS_START_DEFINE'];