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()); } }
$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'];