} else { if (!empty($_POST['round'])) { $round = $_POST['round']; } } if (!empty($_GET['heat'])) { $heat = $_GET['heat']; } $teamsm = false; if (isset($_POST['teamsm'])) { $teamsm = $_POST['teamsm']; } $presets = AA_results_getPresets($round); $relay = AA_checkRelay($presets['event']); // check, if this is a relay event $disctype = AA_getDisciplineType($round); // get discipline type if ($_POST['arg'] == 'seed') { // heat seeding AA_heats_seedEntries($presets['event']); } else { if ($_POST['arg'] == 'seed_qual') { // seed qualified athletes AA_heats_seedQualifiedAthletes($presets['event']); } else { if ($_GET['arg'] == 'heats_done') { // heat seeding/qualification done AA_utils_changeRoundStatus($round, $cfgRoundStatus['heats_done']); if (!empty($GLOBALS['AA_ERROR'])) { AA_printErrorMsg($GLOBALS['AA_ERROR']); }
AA_printRoundSelection("speaker_results.php", $presets['category'], $presets['event'], $round); printf("</td>\n"); } if ($round > 0) { printf("<td class='forms'>\n"); AA_printHeatSelection($round, true); printf("</td>\n"); } ?> </tr> </table> <?php // // form layout (depending on discipline type) // if ($round > 0) { $layout = AA_getDisciplineType($round); // type determines layout // track disciplines, with or without wind if ($layout == $cfgDisciplineType[$strDiscTypeNone] || $layout == $cfgDisciplineType[$strDiscTypeTrack] || $layout == $cfgDisciplineType[$strDiscTypeTrackNoWind] || $layout == $cfgDisciplineType[$strDiscTypeDistance] || $layout == $cfgDisciplineType[$strDiscTypeRelay]) { AA_speaker_Track($presets['event'], $round, $layout); } else { if ($layout == $cfgDisciplineType[$strDiscTypeThrow] || $layout == $cfgDisciplineType[$strDiscTypeJump] || $layout == $cfgDisciplineType[$strDiscTypeJumpNoWind]) { AA_speaker_Tech($presets['event'], $round, $layout); } else { if ($layout == $cfgDisciplineType[$strDiscTypeHigh]) { AA_speaker_High($presets['event'], $round, $layout); } } } }
function AA_timetable_display_regie($timestamp) { require './config.inc.php'; require './lib/common.lib.php'; require './lib/regie_results_track.lib.php'; require './lib/regie_results_tech.lib.php'; require './lib/regie_results_high.lib.php'; mysql_query("DROP TABLE IF EXISTS `tempTrack`"); // temporary table mysql_query("DROP TABLE IF EXISTS `tempHigh`"); // temporary table $temp = mysql_query("\r\n \r\n CREATE TEMPORARY TABLE IF NOT EXISTS `tempTrack` (\r\n `leistung` int(11) NOT NULL default '0', \r\n `xSerienstart` int(10) NOT NULL default '0',\r\n `xSerie` int(10) NOT NULL default '0', \r\n `rang` int(10) NOT NULL default '0',\r\n PRIMARY KEY (`xSerienstart`)\r\n ) ENGINE=HEAP \r\n "); if (mysql_errno() > 0) { // DB error AA_printErrorMsg(mysql_errno() . ": " . mysql_error()); } else { // Set up a temporary table to hold all results for ranking. mysql_query("\r\n CREATE TEMPORARY TABLE IF NOT EXISTS tempHigh (\r\n xSerienstart int(11)\r\n , xSerie int(11)\r\n , Leistung int(9)\r\n , TopX int(1)\r\n , TotalX int(2)\r\n , `rang` int(10) NOT NULL default '0' \r\n )\r\n ENGINE=HEAP \r\n "); if (mysql_errno() > 0) { // DB error AA_printErrorMsg(mysql_errno() . ": " . mysql_error()); } else { $timestamp = time(); $sql = "SELECT DISTINCT\r\n k.Name\r\n FROM\r\n wettkampf AS w\r\n LEFT JOIN kategorie AS k ON (w.xKategorie = k.xKategorie)\r\n WHERE \r\n w.xMeeting = " . $_COOKIE['meeting_id'] . " \r\n ORDER BY\r\n k.Anzeige,\r\n k.Kurzname"; $result = mysql_query($sql); if (mysql_errno() > 0) { AA_printErrorMsg(mysql_errno() . ": " . mysql_error()); } else { $headerline = ""; // assemble headerline and category array $cats = array(); while ($row = mysql_fetch_row($result)) { $headerline = $headerline . "<th class='timetable'>{$row['0']}</th>"; $cats[] = $row[0]; // category array } mysql_free_result($result); // all rounds ordered by date/time // - count nbr of present athletes or relays (don't include // athletes starting in relays) // - group by r.xRunde to show event-rounds entered more than once // - group by s.xWettkampf to count athletes per event // (the different date and time fields are required to properly set // up the table) $sql = "SELECT\r\n r.xRunde\r\n , r.Status\r\n , rt.Typ\r\n , k.Name\r\n , d.Kurzname\r\n , IF(s.xWettkampf IS NULL,0,COUNT(*)) \r\n , TIME_FORMAT(r.Startzeit, '{$cfgDBtimeFormat}')\r\n , TIME_FORMAT(r.Startzeit, '%H')\r\n , DATE_FORMAT(r.Datum, '{$cfgDBdateFormat}')\r\n , r.Datum\r\n , r.xWettkampf\r\n , k.xKategorie\r\n , r.Speakerstatus\r\n , w.Info\r\n , r.StatusZeitmessung\r\n , r.Gruppe\r\n , w.Typ\r\n , w.Mehrkampfende\r\n , w.Mehrkampfcode\r\n , rs.xRundenset\r\n , rs.Hauptrunde\r\n , d.xDisziplin\r\n , r.Startzeit \r\n FROM\r\n runde AS r\r\n LEFT JOIN wettkampf AS w ON (r.xWettkampf = w.xWettkampf)\r\n LEFT JOIN kategorie AS k ON (w.xKategorie = k.xKategorie)\r\n LEFT JOIN disziplin_" . $_COOKIE['language'] . " AS d ON (w.xDisziplin = d.xDisziplin)\r\n LEFT JOIN rundentyp_" . $_COOKIE['language'] . " AS rt\r\n ON r.xRundentyp = rt.xRundentyp\r\n LEFT JOIN start AS s\r\n ON w.xWettkampf = s.xWettkampf\r\n AND s.Anwesend = 0\r\n AND ((d.Staffellaeufer = 0\r\n AND s.xAnmeldung > 0)\r\n OR (d.Staffellaeufer > 0\r\n AND s.xStaffel > 0))\r\n LEFT JOIN rundenset AS rs ON (rs.xRunde = r.xRunde AND rs.xMeeting = " . $_COOKIE['meeting_id'] . ") \r\n WHERE w.xMeeting=" . $_COOKIE['meeting_id'] . " \r\n AND (r.status = " . $cfgRoundStatus['results_in_progress'] . "\r\n OR r.status = " . $cfgRoundStatus['results_live'] . ") \r\n GROUP BY\r\n r.xRunde\r\n , s.xWettkampf \r\n ORDER BY\r\n r.Datum\r\n , r.Startzeit\r\n , k.Anzeige\r\n , k.Kurzname\r\n , d.Anzeige"; $res = mysql_query($sql); if (mysql_errno() > 0) { AA_printErrorMsg(mysql_errno() . ": " . mysql_error()); } else { $date = 0; $hour = ''; $time = 0; $i = 0; $k = ''; $events = array(); // array to hold last processed round per event ?> <table> <?php while ($row = mysql_fetch_row($res)) { // if (strtotime($row[22]) >= $timestamp){ // continue; // } if ($row[20] == 0 && $row[20] != NULL) { // don't' show merged rounds continue; } if ($i % 2 == 0) { ?> <tr> <td class="dialog-top"> <?php } else { ?> <td class="dialog-top"> <?php } $layout = AA_getDisciplineType($row[0]); // type determines layout // track disciplines, with or without wind if ($layout == $cfgDisciplineType[$strDiscTypeNone] || $layout == $cfgDisciplineType[$strDiscTypeTrack] || $layout == $cfgDisciplineType[$strDiscTypeTrackNoWind] || $layout == $cfgDisciplineType[$strDiscTypeDistance] || $layout == $cfgDisciplineType[$strDiscTypeRelay]) { AA_regie_Track($row[10], $row[0], $layout, $row[3], $row[4]); } else { if ($layout == $cfgDisciplineType[$strDiscTypeThrow] || $layout == $cfgDisciplineType[$strDiscTypeJump] || $layout == $cfgDisciplineType[$strDiscTypeJumpNoWind]) { AA_regie_Tech($row[10], $row[0], $layout, $row[3], $row[4]); } else { if ($layout == $cfgDisciplineType[$strDiscTypeHigh]) { AA_regie_High($row[10], $row[0], $layout, $row[3], $row[4]); } } } $i++; if ($i % 2 == 0) { ?> </td> </tr> <?php } else { ?> </td> <?php } } // END while every event round mysql_free_result($res); ?> </tr> <?php } // ET DB error event rounds ?> </table> <?php } } } // ET DB timetable item error $temp = mysql_query("DROP TABLE IF EXISTS `tempTrack`"); $temp = mysql_query("DROP TABLE IF EXISTS `tempHigh` "); }
function AA_results_getTimingOmega($round, $arg = false, $noerror = false) { require './lib/results_track.lib.php'; global $cfgInvalidResult, $strErrTimingWrongRegid, $cfgRoundStatus; $count_results = 0; $number_results = 0; $omega = new omega($noerror); if ($omega->is_configured() == false) { return; } $results = $omega->get_lstrslt(); $status = $omega->get_lststatu(); $infos = $omega->get_lstrrslt(); //print_r($results); if (($results && $status && $infos) == false) { return; } $relay = AA_checkRelay(0, $round); if ($arg) { $sqladd = "AND ru.Status = " . $cfgRoundStatus['heats_done']; } else { $sqladd = ""; } mysql_query("\r\n\t\tLOCK TABLES \r\n\t\t\tserie as s WRITE\r\n\t\t\t, resultat as r WRITE\r\n\t\t\t, resultat WRITE\r\n , resultat as re READ\r\n\t\t\t, runde as ru WRITE\r\n , runde WRITE\r\n\t\t\t, serienstart as sst READ\r\n , serienstart as se READ \r\n , serienstart as ss READ \r\n , serie as s READ\r\n\t\t\t, start as st READ\r\n\t\t\t, anmeldung as a READ\r\n\t\t\t, disziplin_de READ\r\n , disziplin_fr READ \r\n , disziplin_it READ \r\n , disziplin_de as d READ\r\n , disziplin_fr as d READ \r\n , disziplin_it as d READ \r\n\t\t\t, wettkampf READ\r\n , wettkampf as w READ \r\n\t\t\t, staffel as sf READ\r\n , kategorie as k READ"); $res_film = mysql_query("\r\n\t\tSELECT s.Film, ru.xWettkampf FROM \r\n\t\t\tserie as s\r\n\t\t\tLEFT JOIN runde as ru USING(xRunde)\r\n\t\tWHERE s.xRunde = {$round}\r\n\t\t{$sqladd}"); if (mysql_errno() > 0) { AA_printErrorMsg(mysql_errno() . ": " . mysql_error()); } else { if ($relay) { $sql = "SELECT \r\n count(*) \r\n FROM\r\n serie as s\r\n LEFT JOIN serienstart as sst USING(xSerie)\r\n LEFT JOIN start as st USING(xStart)\r\n LEFT JOIN staffel as sf USING(xStaffel)\r\n LEFT JOIN resultat as r ON (sst.xSerienstart=r.xSerienstart)\r\n WHERE s.xRunde = " . $round; } else { $sql = "SELECT \r\n count(*) \r\n FROM\r\n serie as s\r\n LEFT JOIN serienstart as sst USING(xSerie)\r\n LEFT JOIN start as st USING(xStart) \r\n LEFT JOIN resultat as r ON (sst.xSerienstart=r.xSerienstart)\r\n WHERE s.xRunde = " . $round; } $res = mysql_query($sql); $row = mysql_fetch_array($res); if (mysql_errno() > 0) { AA_printErrorMsg(mysql_errno() . ": " . mysql_error()); } else { $number_results = $row[0]; } while ($row_film = mysql_fetch_array($res_film)) { $nr = $row_film[0]; $event = $row_film[1]; // get only the official results (end of judgement) if ($infos[$nr][8] == 'Official') { // save infos like wind //$timingInf[$nr] = $infos[$nr]; $wind = $infos[$nr][5]; if ($wind == 'N/A') { $wind = ""; } else { $wind = substr($wind, 0, 5); // Korrektur um auf allen Versionen der OMEGA-Zeitmessung korrekte positive Winde zu übermitteln // Paul Rohrer LC Basel Juni 2014 if (substr($wind, 0, 1) == "-") { $wind = "-" . trim(substr($wind, 1, 4)); } elseif (substr($wind, 0, 1) == "+") { $wind = trim(substr($wind, 1, 4)); } else { // positiver Wind ab der ersten Position zu lesen $wind = trim(substr($wind, 0, 4)); } // round fraction hundert up $wind = ceil($wind * 10) / 10; $wind = sprintf("%01.1f", $wind); } mysql_query("UPDATE serie as s SET Wind = '" . $wind . "'\r\n\t\t\t\t\t\tWHERE xRunde = {$round} AND Film = {$nr}"); foreach ($results as $val) { $reaction_time = false; if ($val[0] == $nr) { // add results to timingRes (array key is the registration id of the athlete) //$timingRes[$val[4]] = $val; // get status text for id (ok, dns, dnf, dq) //$timingRes[$val[4]][6] = $status[$val[6]][2]; switch ($status[$val[6]][2]) { case "DNS": $perf = $cfgInvalidResult['DNS']['code']; $points = 0; break; case "DNF": $perf = $cfgInvalidResult['DNF']['code']; $points = 0; break; case "DQ": $perf = $cfgInvalidResult['DSQ']['code']; $points = 0; break; default: $perf = ceil($val[7] / 10); if (floor($val[8]) == 0) { // perf = 0. --> reaction time $reaction_time = true; break; } $sex = 'M'; if (!$relay) { /*$sql = "SELECT Geschlecht FROM serienstart AS sst LEFT JOIN serie AS s USING ( xSerie ) LEFT JOIN start AS st ON sst.xStart = st.xStart LEFT JOIN anmeldung AS a ON st.xAnmeldung = a.xAnmeldung LEFT JOIN athlet USING ( xAthlet ) WHERE s.xRunde = ".$round." AND s.Film = ".$nr." AND a.Startnummer = ".$val[4].";";*/ $sql_sex = "SELECT DISTINCT(k.Geschlecht) AS Geschlecht\r\n\t\t\t\t\t\t\t\t\t\t\t FROM kategorie as k \r\n\t\t\t\t\t\t\t\t\t\t LEFT JOIN wettkampf USING(xKategorie) \r\n\t\t\t\t\t\t\t\t\t\t LEFT JOIN start AS st USING(xWettkampf)\r\n\t\t\t\t\t\t\t\t\t\t LEFT JOIN serienstart AS sst USING(xStart)\r\n\t\t\t\t\t\t\t\t\t\t LEFT JOIN serie AS s USING(xSerie)\r\n\t\t\t\t\t\t\t\t\t\t\t WHERE s.XRunde = " . $round . " \r\n\t\t\t\t\t\t\t\t\t\t\t AND s.Film = " . $nr . ";"; $query = mysql_query($sql_sex); if (mysql_errno() > 0) { AA_printErrorMsg(mysql_errno() . ": " . mysql_error()); } if ($query && mysql_num_rows($query) == 1) { $sex = mysql_result($query, 0, 'Geschlecht'); } } } if (!$reaction_time) { if ($relay == false) { $res = mysql_query("\r\n\t\t\t\t\t\t\t\t SELECT xResultat, sst.xSerienstart FROM\r\n\t\t\t\t\t\t\t\t\t resultat as r\r\n\t\t\t\t\t\t\t\t\t LEFT JOIN serienstart as sst USING(xSerienstart)\r\n\t\t\t\t\t\t\t\t\t LEFT JOIN serie as s USING (xSerie)\r\n\t\t\t\t\t\t\t\t\t LEFT JOIN start as st ON sst.xStart = st.xStart\r\n\t\t\t\t\t\t\t\t\t LEFT JOIN anmeldung as a ON st.xAnmeldung = a.xAnmeldung\r\n\t\t\t\t\t\t\t\t WHERE s.xRunde = {$round}\r\n\t\t\t\t\t\t\t\t AND s.Film = {$nr}\r\n\t\t\t\t\t\t\t\t AND a.Startnummer = " . $val[4]); if (mysql_num_rows($res) == 0) { // insert result $res = mysql_query("\r\n\t\t\t\t\t\t\t\t\t SELECT sst.xSerienstart FROM\r\n\t\t\t\t\t\t\t\t\t\t serie as s\r\n\t\t\t\t\t\t\t\t\t\t LEFT JOIN serienstart as sst USING(xSerie)\r\n\t\t\t\t\t\t\t\t\t\t LEFT JOIN start as st USING(xStart)\r\n\t\t\t\t\t\t\t\t\t\t LEFT JOIN anmeldung as a USING(xAnmeldung)\r\n\t\t\t\t\t\t\t\t\t WHERE\ta.Startnummer = " . $val[4] . "\r\n\t\t\t\t\t\t\t\t\t AND\ts.Film = {$nr}\r\n\t\t\t\t\t\t\t\t\t AND\ts.xRunde = {$round}"); if (mysql_num_rows($res) == 0) { // no athlete with this registration id is started if ($noerror == false) { AA_printErrorMsg($strErrTimingWrongRegid); } } else { $row = mysql_fetch_array($res); $count_results++; $points = AA_utils_calcPoints($event, $perf, 0, $sex, $row[0]); mysql_query("\r\n\t\t\t\t\t\t\t\t\t\t INSERT INTO resultat\r\n\t\t\t\t\t\t\t\t\t\t SET \tLeistung = '{$perf}'\r\n\t\t\t\t\t\t\t\t\t\t\t, Punkte = '{$points}'\r\n\t\t\t\t\t\t\t\t\t\t\t, xSerienstart = " . $row[0]); AA_StatusChanged(mysql_insert_id()); } } else { // update $count_results++; $row = mysql_fetch_array($res); $points = AA_utils_calcPoints($event, $perf, 0, $sex, $row[1]); mysql_query("UPDATE resultat as r SET Leistung = '{$perf}'\r\n\t\t\t\t\t\t\t\t\t\t , Punkte = '{$points}'\r\n\t\t\t\t\t\t\t\t\t WHERE xResultat = " . $row[0]); AA_StatusChanged($row[0]); } // } else { // relay event // // set startnumber - 999 because of this omega trick (nbr = 999XXX) //$val[4] = substr($val[4],3); <-- changed /* $res = mysql_query(" SELECT xResultat FROM resultat as r LEFT JOIN serienstart as sst USING(xSerienstart) LEFT JOIN serie as s USING (xSerie) LEFT JOIN start as st ON sst.xStart = st.xStart LEFT JOIN staffel as sf ON st.xStaffel = a.xStaffel WHERE s.xRunde = $round AND s.Film = $nr AND sf.Startnummer = ".$val[4] ); */ $res = mysql_query("\r\n\t\t\t\t\t\t\t \t\tSELECT \r\n\t\t\t\t\t\t\t \t\t\tr.xResultat, sst.xSerienstart , k.Geschlecht\r\n\t\t\t\t\t\t\t \t\tFROM\r\n\t\t\t\t\t\t\t\t\t\tserie as s\r\n\t\t\t\t\t\t\t\t\t\tLEFT JOIN serienstart as sst USING(xSerie)\r\n\t\t\t\t\t\t\t\t\t\tLEFT JOIN start as st USING(xStart)\r\n\t\t\t\t\t\t\t\t\t\tLEFT JOIN staffel as sf USING(xStaffel)\r\n\t\t\t\t\t\t\t\t\t\tLEFT JOIN resultat as r ON (sst.xSerienstart=r.xSerienstart)\r\n LEFT JOIN kategorie AS k ON ( k.xKategorie = sf.xKategorie )\r\n\t\t\t\t\t\t\t\t\tWHERE s.xRunde = {$round}\r\n\t\t\t\t\t\t\t\t\tAND s.Film = {$nr}\r\n\t\t\t\t\t\t\t\t\tAND sf.Startnummer = " . $val[4]); if (mysql_errno() > 0) { AA_printErrorMsg(mysql_errno() . ": " . mysql_error()); } $row = mysql_fetch_array($res); if (mysql_num_rows($res) == 0) { // no athlete with this registration id is started if ($noerror == false) { AA_printErrorMsg($strErrTimingWrongRegid); } } else { $sex = $row[2]; $points = AA_utils_calcPoints($event, $perf, 0, $sex, $row[1]); if (empty($row[0])) { // insert result $count_results++; mysql_query("\r\n\t\t\t\t\t\t\t\t\t\t\tINSERT INTO resultat\r\n\t\t\t\t\t\t\t\t\t\t\tSET \tLeistung = '{$perf}'\r\n\t\t\t\t\t\t\t\t\t\t\t\t, Punkte = '{$points}'\r\n\t\t\t\t\t\t\t\t\t\t\t\t, xSerienstart = " . $row[1]); AA_StatusChanged(mysql_insert_id()); } else { // update $count_results++; mysql_query("UPDATE resultat as r SET Leistung = '{$perf}'\r\n\t\t\t\t\t\t\t\t\t\t\t, Punkte = '{$points}'\r\n\t\t\t\t\t\t\t\t\t\t\tWHERE xResultat = " . $row[0]); AA_StatusChanged($row[0]); } } } } } } // end foreach // results updated, now set status for event time table mysql_query("UPDATE runde as ru SET StatusZeitmessung = 1 WHERE xRunde = {$round}"); if (mysql_errno() > 0) { AA_printErrorMsg(mysql_errno() . ": " . mysql_error()); } } } // end while } mysql_query("UNLOCK TABLES"); // all results from omega for this round and automatic ranking is 'y' if ($count_results == $number_results && $_SESSION['meeting_infos']['AutoRangieren'] == 'y') { $layout = AA_getDisciplineType($round); // type determines layout $_GET['arg'] = 'results_done'; $autoRank = true; AA_results_Track($round, $layout, $autoRank); // ranking } }
/** * show timetable * ------------------- */ function AA_timetable_display() { require_once './lib/cl_http_data.lib.php'; //include class require_once './lib/common.lib.php'; //include class require './config.inc.php'; require './config.inc.end.php'; $p = "./tmp"; $fp = @fopen($p . "/index.html", 'w'); if (!$fp) { AA_printErrorMsg($GLOBALS['strErrFileOpenFailed']); return; } $content = $cfgHtmlStart1; $content .= "<meta http-equiv='refresh' content='" . $GLOBALS['cfgMonitorReload'] . "; url=http://" . $GLOBALS['cfgUrl'] . "/" . $GLOBALS['cfgDir'] . "/index.html'>"; $content .= $GLOBALS['cfgHtmlStart2']; $content .= "<div id='navi'>\r\n"; $content_navi = "<div id='navi_pc'>\r\n"; $content .= "<div id='navi_left'>\r\n"; require './lib/rankinglist_single.lib.php'; require './lib/results_track.lib.php'; require './lib/results_tech.lib.php'; require './lib/results_high.lib.php'; require './config.inc.php'; require "./lib/cl_ftp_data.lib.php"; $result = mysql_query("\r\n\t\tSELECT DISTINCT\r\n\t\t\tk.Name\r\n\t\tFROM\r\n\t\t\tathletica.wettkampf AS w\r\n\t\t\tLEFT JOIN athletica.kategorie AS k ON (w.xKategorie = k.xKategorie)\r\n\t\tWHERE w.xMeeting = " . $_COOKIE['meeting_id'] . " \t\t\r\n\t\tORDER BY\r\n\t\t\tk.Anzeige,\r\n k.Kurzname\r\n\t"); if (mysql_errno() > 0) { AA_printErrorMsg(mysql_errno() . ": " . mysql_error()); } else { // all rounds ordered by date/categorie/time // - count nbr of present athletes or relays (don't include // athletes starting in relays) // - group by r.xRunde to show event-rounds entered more than once // - group by s.xWettkampf to count athletes per event // (the different date and time fields are required to properly set // up the table) $sql = "SELECT\r\n r.xRunde\r\n , r.Status\r\n , rt.Typ\r\n , k.Name\r\n , d.Kurzname\r\n , IF(s.xWettkampf IS NULL,0,COUNT(*))\r\n , TIME_FORMAT(r.Startzeit, '{$cfgDBtimeFormat}')\r\n , TIME_FORMAT(r.Startzeit, '%H')\r\n , DATE_FORMAT(r.Datum, '{$cfgDBdateFormat}')\r\n , r.Datum\r\n , r.xWettkampf\r\n , k.xKategorie\r\n , r.Speakerstatus\r\n , w.Info\r\n , r.StatusZeitmessung\r\n , r.Gruppe\r\n , w.Typ\r\n , w.Mehrkampfende\r\n , w.Mehrkampfcode\r\n , rs.xRundenset\r\n , rs.Hauptrunde\r\n , d.Name\r\n , rt.Name\r\n , r.StatusChanged\r\n , m.StatusChanged\r\n FROM\r\n athletica.runde AS r\r\n LEFT JOIN athletica.wettkampf AS w ON (r.xWettkampf = w.xWettkampf)\r\n LEFT JOIN athletica.kategorie AS k ON (w.xKategorie = k.xKategorie)\r\n LEFT JOIN athletica.disziplin_" . $_COOKIE['language'] . " AS d ON (w.xDisziplin = d.xDisziplin)\r\n LEFT JOIN athletica.rundentyp_" . $_COOKIE['language'] . " AS rt\r\n ON r.xRundentyp = rt.xRundentyp\r\n LEFT JOIN athletica.start AS s\r\n ON w.xWettkampf = s.xWettkampf\r\n AND s.Anwesend = 0\r\n AND ((d.Staffellaeufer = 0\r\n AND s.xAnmeldung > 0)\r\n OR (d.Staffellaeufer > 0\r\n AND s.xStaffel > 0))\r\n LEFT JOIN athletica.rundenset AS rs ON (rs.xRunde = r.xRunde AND rs.xMeeting = " . $_COOKIE['meeting_id'] . ") \r\n LEFT JOIN athletica.meeting AS m ON (w.xMeeting = m.xMeeting)\r\n WHERE w.xMeeting=" . $_COOKIE['meeting_id'] . " \r\n AND w.Mehrkampfcode = 0\r\n GROUP BY\r\n r.xRunde\r\n , s.xWettkampf\r\n ORDER BY\r\n r.Datum\r\n , k.Anzeige \r\n , r.Startzeit \r\n , k.Kurzname\r\n , d.Anzeige"; $res = mysql_query($sql); if (mysql_errno() > 0) { AA_printErrorMsg(mysql_errno() . ": " . mysql_error()); } else { $date = 0; $hour = ''; $time = 0; $i = 0; $l = 0; $s = 0; $k = ''; $m_statusChanged = 'n'; $events = array(); // array to hold last processed round per event $content .= "<table class='timetable' >\r\n "; $content_navi .= "<table class='timetable' >\r\n "; $count_navi = mysql_num_rows($res); $count_navi_half = round($count_navi / 2, 0); while ($row = mysql_fetch_row($res)) { /* if ($i == $count_navi_half){ $content .= "</table>\r\n "; $content .= "</div>\r\n "; $content .= "<div id='navi_right'>\r\n"; $content .= "<table class='timetable' >\r\n "; } */ $event = $row[10]; $combGroup = ""; // combined group if set $combined = false; // is combined event $teamsm = false; // is team sm event if ($row[16] == $cfgEventType[$strEventTypeSingleCombined]) { $combined = true; } if ($row[16] == $cfgEventType[$strEventTypeTeamSM]) { $teamsm = true; } $roundSet = $row[19]; // set if round is merged $roundSetMain = $row[20]; // main round flag of round set // if main round -> count athletes from all merged rounds // new date or time: start a new line //if(($date != $row[8]) || ($time != $row[6]) || ($time == $row[6]) && $k != $row[3] || ($i == $count_navi_half)) // new date or time if ($date != $row[8] || $time != $row[6] || $time == $row[6] && $k != $row[3]) { if ($date != 0) { // not first item $content .= "</td>\r\n</tr> \r\n "; $content_navi .= "</td>\r\n</tr> \r\n "; } if ($date != $row[8]) { // new date -> headerline with date $content .= "<tr>\r\n<th class='date' id='" . $row[9] . $row[7] . "'>" . $row[8] . "</th>\r\n<th width='100%' class='timetable'>" . $row[3] . "</th>\r\n</tr>\r\n"; $content_navi .= "<tr>\r\n<th class='date' id='" . $row[9] . $row[7] . "'>" . $row[8] . "</th>\r\n<th width='100%' class='timetable'>" . $row[3] . "</th>\r\n</tr>\r\n"; } else { if ($k != $row[3]) { $content .= "<tr>\r\n<th class='timetable_sub' id='" . $row[9] . $row[7] . "' /></th>\r\n<th class='timetable'>" . $row[3] . "</th>\r\n</tr>\r\n</tr>\r\n"; $content_navi .= "<tr>\r\n<th class='timetable_sub' id='" . $row[9] . $row[7] . "' /></th>\r\n<th class='timetable'>" . $row[3] . "</th>\r\n</tr>\r\n</tr>\r\n"; } } // ET new date or new hour if ($i % 2 == 0) { // even row number $class = 'even'; } else { // odd row number $class = 'odd'; } $k = ''; $content .= "<tr class='" . $class . "'>\r\n<th class='timetable_sub'>" . $row[6] . "</th>\r\n"; $content_navi .= "<tr class='" . $class . "'>\r\n<th class='timetable_sub'>" . $row[6] . "</th>\r\n"; } else { if ($k != $row[3]) { $content .= "<tr>\r\n<th class='timetable_sub' id='" . $row[9] . $row[7] . "' /></th>\r\n<th class='timetable'>" . $row[3] . "</th></tr>"; $content_navi .= "<tr>\r\n<th class='timetable_test' id='" . $row[9] . $row[7] . "' /></th>\r\n<th class='timetable'>" . $row[3] . "</th></tr>"; } } $i++; $time = $row[6]; $hour = $row[7]; $date = $row[8]; $href_class = ''; // check round status and set correct link if ($row[23] == 'y' || $row[24] == 'y') { // only upload the changes rounds if ($row[24] == 'y') { $m_statusChanged = 'y'; } if ($row[1] == $cfgRoundStatus['results_done'] || $row[1] == $cfgRoundStatus['results_in_progress']) { if ($row[1] == $cfgRoundStatus['results_done']) { $href_class = "timetable_heat_done"; } else { $href_class = "timetable_heat_process"; } $arr_link[$l] = $row[0]; $arr_link_evt[$l] = $row[10]; $l++; } elseif ($row[1] == $cfgRoundStatus['heats_done']) { $href_class = "timetable_sub"; $arr_link_start[$s] = $row[0]; $arr_cat[$s] = $row[3]; $arr_disc[$s] = $row[21]; if ($row[2] == '0') { // Typ: (ohne) $arr_rtyp[$s] = ''; } else { $arr_rtyp[$s] = $row[22]; } $arr_event[$s] = $row[10]; $s++; } } // next event is in a different category: go to next cell if ($k != $row[3]) { if ($k != 0) { // not first category $content .= "</td>\r\n"; $content_navi .= "</td>\r\n"; } $k = $row[3]; // keep current category if (array_key_exists($row[10], $events) == TRUE && $combined == false && $teamsm == false) { $starts = "-"; // get number of athletes/relays with valid result if ($row[2] == 'S' || $row[2] == 'O') { // round typ: S = Serie , O = ohne $sql = "\r\n\t\t\t\t\t\t\t SELECT\r\n\t\t\t\t\t\t\t\t COUNT(*)\r\n\t\t\t\t\t\t\t FROM\r\n\t\t\t\t\t\t\t\t athletica.serienstart AS ss\r\n\t\t\t\t\t\t\t\t LEFT JOIN athletica.serie AS s ON (s.xSerie = ss.xSerie)\r\n\t\t\t\t\t\t\t WHERE \r\n\t\t\t\t\t\t\t s.xRunde =" . $events[$row[10]]; } else { $sql = "SELECT\r\n COUNT(*)\r\n FROM\r\n athletica.serienstart AS ss\r\n LEFT JOIN athletica.serie AS s ON (s.xSerie = ss.xSerie)\r\n WHERE ss.Qualifikation > 0 \r\n AND s.xRunde =" . $events[$row[10]]; } $result = mysql_query($sql); if (mysql_errno() > 0) { // DB error AA_printErrorMsg(mysql_errno() . ": " . mysql_error()); } else { $start_row = mysql_fetch_row($result); $starts = $start_row[0]; mysql_free_result($result); } } elseif ($combined || $teamsm) { // for combined rounds, count starts for correct group if ($row[17] == 1) { // if this is a combined last event, every athlete starts $starts = $row[5]; } elseif (empty($row[15])) { // if no group is set $starts = $row[5]; } else { $result = mysql_query("SELECT COUNT(*) FROM\r\n\t\t\t\t\t\t\t\t\t\t\tathletica.start as st\r\n\t\t\t\t\t\t\t\t\t\t\tLEFT JOIN athletica.anmeldung as a ON (st.xAnmeldung = a.xAnmeldung)\r\n\t\t\t\t\t\t\t\t\t\tWHERE\t\r\n\t\t\t\t\t\t\t\t\t\t\tst.xWettkampf = {$row['10']}\r\n\t\t\t\t\t\t\t\t\t\t AND\ta.Gruppe = '{$row['15']}'"); if (mysql_errno() > 0) { AA_printErrorMsg(mysql_errno() . ": " . mysql_error()); } else { $start_row = mysql_fetch_array($result); $starts = $start_row[0]; mysql_free_result($result); } $combGroup = " g" . $row[15]; } } elseif ($roundSet > 0) { if ($roundSetMain == 0) { $starts = "m"; } else { $result = mysql_query("SELECT COUNT(*) FROM\r\n\t\t\t\t\t\t\t\t\t\t\tathletica.rundenset AS rs\r\n\t\t\t\t\t\t\t\t\t\t\tLEFT JOIN athletica.runde AS r ON (r.xRunde = rs.xRunde)\r\n\t\t\t\t\t\t\t\t\t\t\tLEFT JOIN athletica.wettkampf AS w ON (w.xWettkampf = r.xWettkampf)\r\n\t\t\t\t\t\t\t\t\t\t\tLEFT JOIN athletica.disziplin_" . $_COOKIE['language'] . " AS d ON (d.xDisziplin = w.xDisziplin)\r\n\t\t\t\t\t\t\t\t\t\t\tLEFT JOIN athletica.start AS s\r\n\t\t\t\t\t\t\t\t\t\t\t\tON w.xWettkampf = s.xWettkampf\r\n\t\t\t\t\t\t\t\t\t\t\t\tAND s.Anwesend = 0\r\n\t\t\t\t\t\t\t\t\t\t\t\tAND ((d.Staffellaeufer = 0\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tAND s.xAnmeldung > 0)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tOR (d.Staffellaeufer > 0\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tAND s.xStaffel > 0))\r\n\t\t\t\t\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\t\t\t\t\trs.xRundenset = {$roundSet} \t\t\t\t\t\t\t\t\t\t\r\n AND s.xWettkampf > 0 \r\n AND rs.xMeeting = " . $_COOKIE['meeting_id'] . " \r\n AND w.xMeeting = " . $_COOKIE['meeting_id'] . " \r\n\t\t\t\t\t\t\t\t\t\t"); if (mysql_errno() > 0) { // DB error AA_printErrorMsg(mysql_errno() . ": " . mysql_error()); } else { $start_row = mysql_fetch_array($result); $starts = $start_row[0]; mysql_free_result($result); } } } else { $starts = $row[5]; } if (!empty($href_class)) { $link = "live" . $row[0] . ".html"; $content .= "<td ><a class='{$href_class}' href='" . $link . "'> " . $row[4] . " " . $row[2] . $combGroup . " " . $row[13] . "</a>\r\n"; $content_navi .= "<td ><a class='{$href_class}' href='" . $link . "'> " . $row[4] . " " . $row[2] . $combGroup . " " . $row[13] . "</a>\r\n"; } else { $content .= "<td>\r\n"; $content_navi .= "<td>\r\n"; } } else { if (array_key_exists($row[10], $events) == TRUE && $combined == false && $teamsm == false) { $starts = "-"; // get number of athletes/relays with valid result $result = mysql_query("\r\n\t\t\t\t\t\t\tSELECT\r\n\t\t\t\t\t\t\t\tCOUNT(*)\r\n\t\t\t\t\t\t\tFROM\r\n\t\t\t\t\t\t\t\tathletica.serienstart AS ss\r\n\t\t\t\t\t\t\t\tLEFT JOIN athletica.serie AS s ON (s.xSerie = ss.xSerie )\r\n\t\t\t\t\t\t\tWHERE ss.Qualifikation > 0 \t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t AND s.xRunde =" . $events[$row[10]]); if (mysql_errno() > 0) { // DB error AA_printErrorMsg(mysql_errno() . ": " . mysql_error()); } else { $start_row = mysql_fetch_row($result); $starts = $start_row[0]; mysql_free_result($result); } } elseif ($combined || $teamsm) { // for combined rounds, count starts for correct group if ($row[17] == 1) { // if this is a combined last event, every athlete starts $starts = $row[5]; } elseif (empty($row[15])) { // if no group is set $starts = $row[5]; } else { $result = mysql_query("SELECT COUNT(*) FROM \r\n\t\t\t\t\t\t\t\t\t\t\tathletica.start as st\r\n\t\t\t\t\t\t\t\t\t\t\tLEFT JOIN athletica.anmeldung as a ON (st.xAnmeldung = a.xAnmeldung)\r\n\t\t\t\t\t\t\t\t\t\tWHERE\t\r\n\t\t\t\t\t\t\t\t\t\t\tst.xWettkampf = {$row['10']}\r\n\t\t\t\t\t\t\t\t\t\t AND\ta.Gruppe = '{$row['15']}'"); if (mysql_errno() > 0) { // DB error AA_printErrorMsg(mysql_errno() . ": " . mysql_error()); } else { $start_row = mysql_fetch_array($result); $starts = $start_row[0]; mysql_free_result($result); } $combGroup = " g" . $row[15]; } } elseif ($roundSet > 0) { if ($roundSetMain == 0) { $starts = "m"; } else { $result = mysql_query("SELECT COUNT(*) FROM\r\n athletica.rundenset AS rs\r\n LEFT JOIN athletica.runde AS r ON (r.xRunde = rs.xRunde)\r\n LEFT JOIN athletica.wettkampf AS w ON ( w.xWettkampf = r.xWettkampf)\r\n LEFT JOIN athletica.disziplin_" . $_COOKIE['language'] . " AS d ON ( d.xDisziplin = w.xDisziplin )\r\n LEFT JOIN athletica.start AS s\r\n ON w.xWettkampf = s.xWettkampf\r\n AND s.Anwesend = 0\r\n AND ((d.Staffellaeufer = 0\r\n AND s.xAnmeldung > 0)\r\n OR (d.Staffellaeufer > 0\r\n AND s.xStaffel > 0))\r\n WHERE\r\n rs.xRundenset = {$roundSet} \r\n AND s.xWettkampf > 0 \r\n AND rs.xMeeting = " . $_COOKIE['meeting_id'] . " \r\n AND w.xMeeting = " . $_COOKIE['meeting_id'] . " \r\n "); if (mysql_errno() > 0) { // DB error AA_printErrorMsg(mysql_errno() . ": " . mysql_error()); } else { $start_row = mysql_fetch_array($result); $starts = $start_row[0]; mysql_free_result($result); } } } else { $starts = $row[5]; } if (!empty($href_class)) { $link = "live" . $row[0] . ".html"; $content .= "<div class='" . $class . "'>\r\n<a class='{$href_class}' href='" . $link . "'> " . $row[4] . " " . $row[2] . $combGroup . " " . $row[13] . "</a>\r\n"; $content_navi .= "<div class='" . $class . "'>\r\n<a class='{$href_class}' href='" . $link . "'> " . $row[4] . " " . $row[2] . $combGroup . " " . $row[13] . "</a>\r\n"; } else { if ($time != $row[6]) { $content .= "<td>\r\n"; $content_navi .= "<td>\r\n"; } } } $events[$row[10]] = $row[0]; // keep last processed round per event } // END while every event round mysql_free_result($res); } // ET DB error event rounds } // ET DB timetable item error $formaction = 'view'; $break = 'none'; $biglist = true; $sepu23 = false; $show_efforts = 'none'; $disc_nr = 99; $athleteCat = false; $heatSeparate = false; $date = '%'; $catFrom = 0; $catTo = 0; $discFrom = 0; $discto = 0; $heatFrom = 0; $heatTo = 0; $cover = FALSE; $cover_timing = false; $content .= "</tr>\r\n</table>\r\n"; $content_navi .= "</tr>\r\n</table>\r\n"; // create rankinglist for every round from array link foreach ($arr_link as $key => $round) { $event = $arr_link_evt[$key]; // Ranking list single event and all attempts AA_rankinglist_Single(0, $event, $round, $formaction, $break, $cover, $biglist, $cover_timing, $date, $show_efforts, $heatSeparate, $catFrom, $catTo, $discFrom, $discTo, $heatFrom, $heatTo, $athleteCat, $content_navi); } foreach ($arr_link_start as $key => $round) { // start list $layout = AA_getDisciplineType($round); // type determines layout // track disciplines, with or without wind if ($layout == $cfgDisciplineType[$strDiscTypeNone] || $layout == $cfgDisciplineType[$strDiscTypeTrack] || $layout == $cfgDisciplineType[$strDiscTypeTrackNoWind] || $layout == $cfgDisciplineType[$strDiscTypeDistance] || $layout == $cfgDisciplineType[$strDiscTypeRelay]) { AA_results_Track($round, $layout, $content_navi, $arr_cat[$key], $arr_disc[$key], $arr_rtyp[$key], $arr_event[$key]); } else { if ($layout == $cfgDisciplineType[$strDiscTypeJump] || $layout == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $layout == $cfgDisciplineType[$strDiscTypeThrow]) { AA_results_Tech($round, $layout, $content_navi, $arr_cat[$key], $arr_disc[$key], $arr_rtyp[$key]); } else { if ($layout == $cfgDisciplineType[$strDiscTypeHigh]) { AA_results_High($round, $layout, $singleRound, $content_navi, $arr_cat[$key], $arr_disc[$key], $arr_rtyp[$key]); } } } } $content .= "</div></div>\r\n<div id='content'></div>\r\n"; $content .= $GLOBALS['cfgHtmlEnd']; if (!fwrite($fp, $content)) { AA_printErrorMsg($GLOBALS['strErrFileWriteFailed']); return; } fclose($fp); // get ftp data $result = mysql_query("\r\n SELECT\r\n *\r\n FROM\r\n athletica_liveResultate.config"); if (mysql_errno() > 0) { AA_printErrorMsg(mysql_errno() . ": " . mysql_error()); } else { $row = mysql_fetch_row($result); $host = $row[1]; $user = $row[2]; $pwd = $row[3]; $url = $row[4]; mysql_free_result($result); } $ftp = new FTP_data(); // send files per ftp $local = dirname($_SERVER['SCRIPT_FILENAME']) . "/tmp/index.html"; if (empty($GLOBALS['cfgDir'])) { $remote = "index.html"; } else { $remote = $GLOBALS['cfgDir'] . "/index.html"; } // upload result file $ftp->open_connection($host, $user, $pwd); if ($m_statusChanged == 'y') { $success = $ftp->put_file($local, $remote); if (!$success) { AA_printErrorMsg($strErrFtpNoPut); } } foreach ($arr_link as $key => $round) { $local = dirname($_SERVER['SCRIPT_FILENAME']) . "/tmp/live" . $round . ".html"; if (empty($GLOBALS['cfgDir'])) { $remote = "live" . $round . ".html"; } else { $remote = $GLOBALS['cfgDir'] . "/live" . $round . ".html"; } $success = $ftp->put_file($local, $remote); } foreach ($arr_link_start as $key => $round) { $local = dirname($_SERVER['SCRIPT_FILENAME']) . "/tmp/live" . $round . ".html"; if (empty($GLOBALS['cfgDir'])) { $remote = "live" . $round . ".html"; } else { $remote = $GLOBALS['cfgDir'] . "/live" . $round . ".html"; } $success = $ftp->put_file($local, $remote); } $ftp->close_connection(); }