<?php require_once dirname(dirname(__FILE__)) . '/config.php'; CheckTourSession(true); $Value = array('error' => 1); if (!empty($_GET['Targets']) and is_array($_GET['Targets'])) { foreach ($_GET['Targets'] as $Day => $Times) { if (is_array($Times)) { foreach ($Times as $Time => $Teams) { if (is_array($Teams)) { foreach ($Teams as $Team => $Events) { if (is_array($Events)) { foreach ($Events as $Event => $Val) { safe_w_SQL("update FinWarmup set\n\t\t\t\t\t\t\t\t\tFwTargets='{$Val}'\n\t\t\t\t\t\t\t\t\twhere FwTournament={$_SESSION['TourId']}\n\t\t\t\t\t\t\t\t\t\tAND FwEvent='{$Event}'\n\t\t\t\t\t\t\t\t\t\tAND FwTeamEvent='{$Team}'\n\t\t\t\t\t\t\t\t\t\tAND FwDay='{$Day}'\n\t\t\t\t\t\t\t\t\t\tAND FwTime='{$Time}'\n\t\t\t\t\t\t\t\t\t\t"); $Value['error'] = 0; $Value['val'] = $Val; } } } } } } } } header('Content-Type: text/xml'); echo '<response>'; foreach ($Value as $fld => $data) { echo "<{$fld}><![CDATA[{$data}]]></{$fld}>"; } echo '</response>';
function InsertStandard3DEliminations($TourId, $SubRule) { $cls = array('SM', 'JM', 'SF', 'JF'); foreach (array('CO', 'LB', 'AN', 'AI') as $div) { foreach ($cls as $cl) { // for($n=1; $n<=16; $n++) { // safe_w_SQL("INSERT INTO Eliminations set ElId=0, ElElimPhase=0, ElEventCode='$div$cl', ElTournament=$TourId, ElQualRank=$n"); // } for ($n = 1; $n <= 8; $n++) { safe_w_SQL("INSERT INTO Eliminations set ElId=0, ElElimPhase=1, ElEventCode='{$div}{$cl}', ElTournament={$TourId}, ElQualRank={$n}"); } } } }
if (count($targets) > 2) { array_splice($targets, $index + 2, 1); } } array_splice($targets, $index, 1); $data2up[] = array('id' => $MyRow->QuId, 'session' => $endSession, 'target' => $trgt); } } } } // faccio gli update if (count($data2up) > 0) { foreach ($data2up as $d) { $query = "UPDATE " . "Qualifications " . "SET " . "QuSession='" . $d['session'] . "'," . "QuTargetNo='" . $d['target'] . "' " . "WHERE " . "QuId='" . $d['id'] . "' "; //print $query . '<br><br>'; $rs = safe_w_SQL($query); if (safe_w_affected_rows()) { safe_w_sql("UPDATE Qualifications SET QuBacknoPrinted=0 WHERE QuId='{$d['id']}'"); } $msg .= get_text('TargetAssigned', 'Tournament', substr($d['target'], 1)) . '<br/>'; } //exit; } else { $msg .= get_text('NoTargetFound') . '<br/>'; } } } } } } else { $msg = get_text('Error');
function InsertStandardFieldEliminations($TourId, $SubRule) { $cls = array(); switch ($SubRule) { case '1': $cls = array('M', 'W', 'JM', 'JW', 'CM', 'CW', 'MM', 'MW'); break; case '2': $cls = array('M', 'W', 'JM', 'JW'); break; } foreach (array('R', 'C', 'B') as $div) { foreach ($cls as $cl) { for ($n = 1; $n <= 16; $n++) { safe_w_SQL("INSERT INTO Eliminations set ElId=0, ElElimPhase=0, ElEventCode='{$div}{$cl}', ElTournament={$TourId}, ElQualRank={$n}"); } for ($n = 1; $n <= 8; $n++) { safe_w_SQL("INSERT INTO Eliminations set ElId=0, ElElimPhase=1, ElEventCode='{$div}{$cl}', ElTournament={$TourId}, ElQualRank={$n}"); } } } }
function SetParameter($ParId, $ParValue) { $Query = "INSERT into Parameters SET ParValue=" . StrSafe_DB($ParValue) . ", ParId=" . StrSafe_DB($ParId) . " ON DUPLICATE KEY UPDATE ParValue=" . StrSafe_DB($ParValue); safe_w_SQL($Query); }
function recalculateIndividuals_20101211($TournamentID) { // Popolo la tabella degli Individuals $events = array(); MakeIndividuals($events, $TournamentID); // Ottengo il numero di Distanze $MySql = "SELECT ToNumDist FROM Tournament WHERE ToId=" . StrSafe_DB($TournamentID); $rs = safe_r_SQL($MySql); $MyRow = safe_fetch($rs); safe_free_result($rs); // Calcolo la tabella Individuals per ogni distanza + il finale for ($i = 0; $i <= $MyRow->ToNumDist; $i++) { $rank = Obj_RankFactory::create('Abs', array('tournament' => $TournamentID, 'dist' => $i, 'skipExisting' => 1)); if ($rank) { $rank->calculate(); } } //Prendo le posizione dei Coin toss dalla tabella delle finali - SE senza eliminatorie $MySql = "UPDATE Individuals\n\t\tINNER JOIN Finals ON IndId=FinAthlete AND IndEvent=FinEvent AND IndTournament=FinTournament\n\t\tINNER JOIN Events ON EvCode=FinEvent AND EvTeamEvent=0 AND EvTournament=FinTournament\n\t\tINNER JOIN Grids ON GrMatchNo=FinMatchNo AND GrPhase=IF(EvFinalFirstPhase=24,32,EvFinalFirstPhase)\n\t\tSET IndRank=GrPosition\n\t\tWHERE FinTournament='{$TournamentID}' AND FinAthlete!=0 AND (EvElim1=0 AND EvElim2=0)"; safe_w_SQL($MySql); // Gestisco le posizioni a seguito dello shootoff di entrata - SE le IndRank sono a 0 $MySql = "SELECT IndId, IndEvent, QuScore, QuGold, QuXnine, IndRank\n\t\tFROM Individuals\n\t\tINNER JOIN Qualifications ON IndId=QuId\n\t\tINNER JOIN Events ON EvCode=IndEvent AND EvTeamEvent=0 AND EvTournament=IndTournament\n\t\tLEFT JOIN Finals ON IndTournament=FinTournament AND IndEvent=FinEvent AND IndId=FinAthlete\n\t\tLEFT JOIN Eliminations AS e1 ON e1.ElElimPhase=0 AND IndTournament=e1.ElTournament AND IndEvent=e1.ElEventCode AND IndId=e1.ElId\n\t\tLEFT JOIN Eliminations AS e2 ON e2.ElElimPhase=1 AND IndTournament=e2.ElTournament AND IndEvent=e2.ElEventCode AND IndId=e2.ElId\n\t\tWHERE IndTournament='{$TournamentID}' AND IndSO=1 AND IndRank=0 AND ((EvElim2=0 AND FinAthlete IS NULL) OR (EvElim2>0 AND EvElim1=0 AND e2.ElId IS NULL) OR (EvElim2>0 AND EvElim1>0 AND e1.ElId IS NULL))\n\t\tORDER BY IndEvent, QuScore DESC, QuGold DESC, QuXnine DESC, IndId\n\t\t"; $rs = safe_r_SQL($MySql); $curGroup = "-----"; $myPos = -1; $myRank = -1; $oldScore = -1; $oldGold = -1; $oldXnine = -1; while ($MyRow = safe_fetch($rs)) { if ($curGroup != $MyRow->IndEvent) { $curGroup = $MyRow->IndEvent; $myPos = $MyRow->IndRank; } $myPos++; if ($MyRow->QuScore != $oldScore || $MyRow->QuGold != $oldGold || $MyRow->QuXnine != $oldXnine) { $myRank = $myPos; } $MySql = "UPDATE Individuals\n\t\t\tSET IndRank = {$myRank}\n\t\t\tWHERE IndId='{$MyRow->IndId}' AND IndEvent='{$MyRow->IndEvent}' AND IndTournament='{$TournamentID}'"; safe_w_SQL($MySql); $oldScore = $MyRow->QuScore; $oldGold = $MyRow->QuGold; $oldXnine = $MyRow->QuXnine; } //Sistemo le Rank di quelli che NON hanno passato i gironi ELiminatori (se c'erano i gironi) e i flag di SO/CT $MySql = "SELECT EvCode, EvFinalFirstPhase, EvElim1, EvElim2 FROM Events WHERE (EvElim1!=0 OR EvElim2!=0) AND EvTournament=" . StrSafe_DB($TournamentID) . " AND EvTeamEvent=0"; $rs = safe_r_SQL($MySql); $eventsC = array(); while ($MyRow = safe_fetch($rs)) { if ($MyRow->EvElim1 > 0) { $eventsC[] = $MyRow->EvCode . "@1"; } if ($MyRow->EvElim2 > 0) { $eventsC[] = $MyRow->EvCode . "@2"; } } Obj_RankFactory::create('ElimInd', array('tournament' => $TournamentID, 'eventsC' => $eventsC, 'skipExisting' => 1))->calculate(); /* $MySql = "SELECT ElId, ElElimPhase, ElEventCode, ElQualRank, ElScore, ElGold, ElXnine, ElRank FROM Eliminations INNER JOIN Events ON EvCode=ElEventCode AND EvTeamEvent=0 AND EvTournament=ElTournament WHERE ElTournament='{$TournamentID}' AND ((EvElim1>0 AND EvE1ShootOff!=0 AND ElElimPhase=0) OR (EvElim2>0 AND EvE2ShootOff!=0 AND ElElimPhase=1)) ORDER BY ElEventCode, ElElimPhase, ElScore DESC, ElRank ASC, ElGold DESC, ElXnine DESC, ElId "; $rs = safe_r_SQL($MySql); $curGroup = "-----"; $myPos = -1; $myRank = -1; $oldScore = -1; $oldGold = -1; $oldXnine = -1; while($MyRow = safe_fetch($rs)) { if($curGroup != $MyRow->ElElimPhase . "|". $MyRow->ElEventCode) { $curGroup = $MyRow->ElElimPhase . "|". $MyRow->ElEventCode; $myPos = 0; } $myPos++; if($MyRow->ElScore != $oldScore || $MyRow->ElGold != $oldGold || $MyRow->ElXnine != $oldXnine) $myRank=$myPos; if($MyRow->ElRank == 0) { $MySql = "UPDATE Eliminations SET ElRank = {$myRank} WHERE ElElimPhase='{$MyRow->ElElimPhase}' AND ElEventCode='{$MyRow->ElEventCode}' AND ElTournament='{$TournamentID}' AND ElQualRank='{$MyRow->ElQualRank}'"; safe_w_SQL($MySql); } $oldScore = $MyRow->ElScore; $oldGold = $MyRow->ElGold; $oldXnine = $MyRow->ElXnine; } */ // Calcolo le rank Finali venendo dalle qualifiche $MySql = "SELECT EvCode, EvFinalFirstPhase, EvElim1, EvElim2 FROM Events WHERE EvTournament=" . StrSafe_DB($TournamentID) . " AND EvTeamEvent=0"; $rs = safe_r_SQL($MySql); $eventsC = array(); while ($MyRow = safe_fetch($rs)) { $eventsC[] = $MyRow->EvCode . "@-3"; if ($MyRow->EvElim1 > 0) { $eventsC[] = $MyRow->EvCode . "@-1"; } if ($MyRow->EvElim2 > 0) { $eventsC[] = $MyRow->EvCode . "@-2"; } $eventsC[] = $MyRow->EvCode . "@" . $MyRow->EvFinalFirstPhase; } Obj_RankFactory::create('FinalInd', array('tournament' => $TournamentID, 'eventsC' => $eventsC))->calculate(); safe_free_result($rs); }
function delModuleParameter($module, $param) { $Query = "delete from ModulesParameters\n\t\twhere\n\t\tMpModule=" . StrSafe_DB($module) . "\n\t\tAND MpParameter=" . StrSafe_DB($param) . "\n\t\tAND MpTournament=" . StrSafe_DB($_SESSION['TourId']); safe_w_SQL($Query); }
function move2NextPhase($Phase = NULL, $Event = NULL, $MatchNo = NULL) { //verifico i parametri if (is_null($Phase) && is_null($MatchNo)) { //Devono esistere o la fase o il MatchNo return; } if (is_null($Phase) && is_null($Event)) { //Se non ho la Fase (e quindi ho il MatchNo) deve esistere l'evento return; } // Remember to check the saved from 64th to 16th! $CheckSaved = array(); //Verifico la situazione tiebreak $Select = "SELECT " . "f.FinEvent, EvMatchMode as MatchMode, f.FinMatchNo as MatchNo, f2.FinMatchNo as OppMatchNo, EvFinalFirstPhase, " . "f.FinAthlete AS Athlete, f2.FinAthlete AS OppAthlete, " . "if(f.FinMatchNo>15, EvElimEnds, EvFinEnds) FinEnds, if(f.FinMatchNo>15, EvElimArrows, EvFinArrows) FinArrows, if(f.FinMatchNo>15, EvElimSO, EvFinSO) FinSO, " . "IF(f.FinDateTime>=f2.FinDateTime, f.FinDateTime, f2.FinDateTime) AS DateTime," . "IF(EvMatchMode=0,f.FinScore,f.FinSetScore) AS Score, f.FinTie as Tie, f.FinTieBreak as TbString, IF(EvMatchMode=0,f2.FinScore,f2.FinSetScore) as OppScore, f2.FinTie as OppTie, f2.FinTieBreak as OppTbString, " . "f.FinArrowString as ArrString, f2.FinArrowString as OppArrString, f.FinSetPoints as SetPoint, f2.FinSetPoints as OppSetPoint " . "FROM Finals AS f " . "INNER JOIN Finals AS f2 ON f.FinEvent=f2.FinEvent AND f.FinMatchNo=IF((f.FinMatchNo % 2)=0,f2.FinMatchNo-1,f2.FinMatchNo+1) AND f.FinTournament=f2.FinTournament " . "INNER JOIN Events ON f.FinEvent=EvCode AND f.FinTournament=EvTournament AND EvTeamEvent=0 "; if (!is_null($Phase)) { $Select .= "INNER JOIN Grids ON f.FinMatchNo=GrMatchNo AND GrPhase=" . StrSafe_DB($Phase) . " "; } else { $Select .= "INNER JOIN Grids ON f.FinMatchNo=GrMatchNo AND GrMatchNo=" . StrSafe_DB($MatchNo % 2 == 0 ? $MatchNo : $MatchNo - 1) . " "; } $Select .= "WHERE f.FinTournament=" . StrSafe_DB($_SESSION['TourId']) . " AND (f.FinMatchNo % 2)=0 "; if (!is_null($Event) && $Event != '') { $Select .= "AND f.FinEvent=" . StrSafe_DB($Event) . " "; } $Select .= "ORDER BY f.FinEvent, f.FinMatchNo "; //echo $Select;exit; $Rs = safe_r_sql($Select); if (safe_num_rows($Rs) > 0) { while ($MyRow = safe_fetch($Rs)) { if (empty($CheckSaved[$MyRow->FinEvent])) { $CheckSaved[$MyRow->FinEvent] = ($MyRow->EvFinalFirstPhase == 48 and $Phase == 64); } //Se uno dei due ATLETI è ZERO ed ENTRAMBI GLI SCORES sono a ZERO imposto il Bye if ($MyRow->Athlete != 0 && $MyRow->OppAthlete == 0 && $MyRow->Score == 0 && $MyRow->OppScore == 0) { $SqlUpdate = "UPDATE Finals SET FinTie=0, FinWinLose=0, FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . " WHERE FinEvent=" . StrSafe_DB($MyRow->FinEvent) . " AND FinMatchNo=" . StrSafe_DB($MyRow->OppMatchNo) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']); safe_w_sql($SqlUpdate); $SqlUpdate = "UPDATE Finals SET FinTie=2, FinWinLose=1, FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . " WHERE FinEvent=" . StrSafe_DB($MyRow->FinEvent) . " AND FinMatchNo=" . StrSafe_DB($MyRow->MatchNo) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']); safe_w_sql($SqlUpdate); } elseif ($MyRow->Athlete == 0 && $MyRow->OppAthlete != 0 && $MyRow->Score == 0 && $MyRow->OppScore == 0) { $SqlUpdate = "UPDATE Finals SET FinTie=0, FinWinLose=0, FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . " WHERE FinEvent=" . StrSafe_DB($MyRow->FinEvent) . " AND FinMatchNo=" . StrSafe_DB($MyRow->MatchNo) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']); safe_w_sql($SqlUpdate); $SqlUpdate = "UPDATE Finals SET FinTie=2, FinWinLose=1, FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . " WHERE FinEvent=" . StrSafe_DB($MyRow->FinEvent) . " AND FinMatchNo=" . StrSafe_DB($MyRow->OppMatchNo) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']); safe_w_sql($SqlUpdate); } elseif ($MyRow->MatchMode != 0) { //Se non ho il BYE, rigestisco il numero di set vinti e aggiorno il conteggio del totale (se i punti set sono valorizzati & le arrowstring sono vuote) if (strlen(trim(str_replace("|", "", $MyRow->SetPoint))) && strlen(trim(str_replace("|", "", $MyRow->OppSetPoint))) && strlen(trim($MyRow->ArrString)) == 0 && strlen(trim($MyRow->OppArrString)) == 0) { $AthSets = explode("|", $MyRow->SetPoint); $OppSets = explode("|", $MyRow->OppSetPoint); $AthScore = 0; $OppScore = 0; $AthWin = 0; $OppWin = 0; if (count($AthSets) == count($OppSets)) { for ($i = 0; $i < count($AthSets); $i++) { if (intval($AthSets[$i]) > intval($OppSets[$i])) { $AthScore += 2; $AthWin++; } elseif (intval($AthSets[$i]) < intval($OppSets[$i])) { $OppScore += 2; $OppWin++; } elseif (intval($AthSets[$i]) != 0 && intval($OppSets[$i]) != 0) { $AthScore += 1; $OppScore += 1; } } $SqlUpdate = "UPDATE Finals SET FinWinLose=" . ($AthScore > $MyRow->FinEnds ? 1 : 0) . ", FinSetScore=" . StrSafe_DB($AthScore) . ", FinWinnerSet=" . StrSafe_DB($AthWin) . ", FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . " WHERE FinEvent=" . StrSafe_DB($MyRow->FinEvent) . " AND FinMatchNo=" . StrSafe_DB($MyRow->MatchNo) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']); safe_w_sql($SqlUpdate); $MyRow->Score = $AthScore; $SqlUpdate = "UPDATE Finals SET FinWinLose=" . ($OppScore > $MyRow->FinEnds ? 1 : 0) . ", FinSetScore=" . StrSafe_DB($OppScore) . ", FinWinnerSet=" . StrSafe_DB($OppWin) . ", FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . " WHERE FinEvent=" . StrSafe_DB($MyRow->FinEvent) . " AND FinMatchNo=" . StrSafe_DB($MyRow->OppMatchNo) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']); safe_w_sql($SqlUpdate); $MyRow->OppScore = $OppScore; } } } //Se uno dei due è diverso da ZERO e non sono uguali oppure se è a set e differiscono di più di un punto if (($MyRow->Score != 0 || $MyRow->OppScore != 0) && $MyRow->Score != $MyRow->OppScore && ($MyRow->MatchMode != 0 && abs($MyRow->Score - $MyRow->OppScore) > 1)) { //Azzero entrambi i flag di shootoff $SqlUpdate = "UPDATE Finals SET FinTie=0, FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . " WHERE FinEvent=" . StrSafe_DB($MyRow->FinEvent) . " AND FinMatchNo IN (" . StrSafe_DB($MyRow->MatchNo) . "," . StrSafe_DB($MyRow->OppMatchNo) . ") AND FinTournament=" . StrSafe_DB($_SESSION['TourId']); safe_w_sql($SqlUpdate); } // Se i punteggi sono uguali e diversi da ZERO entro nel dettaglio E le stringhe di frecce sono lunghe uguali e non vuote if ($MyRow->Score != 0 and $MyRow->Score == $MyRow->OppScore and strlen(str_replace(' ', '', $MyRow->TbString)) > 0 and strlen(str_replace(' ', '', $MyRow->TbString)) == strlen(str_replace(' ', '', $MyRow->OppTbString))) { $WinnerId = -1; //Verifico le stringhe CASE INSENSITIVE - in questo momento me ne frego degli "*" if (ValutaArrowString($MyRow->TbString) < ValutaArrowString($MyRow->OppTbString)) { $WinnerId = $MyRow->OppMatchNo; //OppTbString è maggiore di TbString --> il secondo vince } elseif (ValutaArrowString($MyRow->TbString) > ValutaArrowString($MyRow->OppTbString)) { $WinnerId = $MyRow->MatchNo; //TbString è maggiore di OppTbString --> il primo vince } elseif (strcmp(strtolower(substr(trim($MyRow->OppTbString), -1, 1)), substr(trim($MyRow->OppTbString), -1, 1)) == 0 && strcmp(substr(trim($MyRow->TbString), -1, 1), strtoupper(substr(trim($MyRow->TbString), -1, 1))) == 0) { $WinnerId = $MyRow->OppMatchNo; //le stringhe CASE INSENSITIVE sono uguali -- Verifico gli "*" e lo star è nella stringa del secondo (è maggiore) } elseif (strcmp(strtoupper(substr(trim($MyRow->OppTbString), -1, 1)), substr(trim($MyRow->OppTbString), -1, 1)) == 0 && strcmp(substr(trim($MyRow->TbString), -1, 1), strtolower(substr(trim($MyRow->TbString), -1, 1))) == 0) { $WinnerId = $MyRow->MatchNo; //le stringhe CASE INSENSITIVE sono uguali -- Verifico gli "*" e lo star è nella stringa del primo (è maggiore) } //Azzero entrambi i flag di shootoff $SqlUpdate = "UPDATE Finals SET FinTie=0, FinWinLose=0, FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . " WHERE FinEvent=" . StrSafe_DB($MyRow->FinEvent) . " AND FinMatchNo IN (" . StrSafe_DB($MyRow->MatchNo) . "," . StrSafe_DB($MyRow->OppMatchNo) . ") AND FinTournament=" . StrSafe_DB($_SESSION['TourId']); safe_w_sql($SqlUpdate); if ($WinnerId > -1) { $SqlUpdate = "UPDATE Finals SET FinTie=1, FinWinLose=1, FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . " WHERE FinEvent=" . StrSafe_DB($MyRow->FinEvent) . " AND FinMatchNo=" . StrSafe_DB($WinnerId) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']); safe_w_sql($SqlUpdate); if ($MyRow->MatchMode != 0 && $MyRow->Score == $MyRow->OppScore) { $SqlUpdate = "UPDATE Finals SET FinSetScore=FinSetScore+1, FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . " WHERE FinEvent=" . StrSafe_DB($MyRow->FinEvent) . " AND FinMatchNo=" . StrSafe_DB($WinnerId) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']); safe_w_sql($SqlUpdate); } } } } } // Faccio i passaggi di fase $MyNextMatchNo = 'xx'; $QueryFilter = ''; $Select = "SELECT " . "f.FinEvent AS Event, f.FinMatchNo, f2.FinMatchNo OppMatchNo, " . "GrPhase, f.FinAthlete AS Athlete, f2.FinAthlete AS OppAthlete, " . "IF(EvMatchMode=0,f.FinScore,f.FinSetScore) AS Score, f.FinTie as Tie, IF(EvMatchMode=0,f2.FinScore,f2.FinSetScore) as OppScore, f2.FinTie as OppTie, " . "IF(GrPhase>2, FLOOR(f.FinMatchNo/2),FLOOR(f.FinMatchNo/2)-2) AS NextMatchNo " . "FROM Finals AS f " . "INNER JOIN Finals AS f2 ON f.FinEvent=f2.FinEvent AND f.FinMatchNo=IF((f.FinMatchNo % 2)=0,f2.FinMatchNo-1,f2.FinMatchNo+1) AND f.FinTournament=f2.FinTournament " . "INNER JOIN Events ON f.FinEvent=EvCode AND f.FinTournament=EvTournament AND EvTeamEvent=0 "; if (!is_null($Phase)) { $Select .= "INNER JOIN Grids ON f.FinMatchNo=GrMatchNo AND GrPhase=" . StrSafe_DB($Phase) . " "; } else { $Select .= "INNER JOIN Grids ON f.FinMatchNo=GrMatchNo AND GrMatchNo=" . StrSafe_DB($MatchNo % 2 == 0 ? $MatchNo : $MatchNo - 1) . " "; } $Select .= "LEFT JOIN Entries ON f.FinAthlete=EnId AND f.FinTournament=EnTournament " . "WHERE f.FinTournament=" . StrSafe_DB($_SESSION['TourId']) . " AND (f.FinMatchNo % 2)=0 "; if (!is_null($Event) && $Event != '') { $Select .= "AND f.FinEvent=" . StrSafe_DB($Event) . " "; } $Select .= "ORDER BY f.FinEvent, NextMatchNo ASC, Score DESC, Tie DESC "; $Rs = safe_r_sql($Select); // conterrà i parametri per il calcolo delle RankFinal $coppie = array(); $AthPropTs = NULL; if (safe_num_rows($Rs) > 0) { $AthPropTs = date('Y-m-d H:i:s'); while ($MyRow = safe_fetch($Rs)) { /* * Dato che potrei avere più fasi gestite da questa funzione, io ricavo le coppie * per la RankFinal dalle righe del recordset. * Visto che mi imbatterò più volte nella stessa coppia evento/fase, solo se la coppia * non l'ho già contata la aggiungo nel vettore. */ if (!in_array($MyRow->Event . '@' . $MyRow->GrPhase, $coppie)) { $coppie[] = $MyRow->Event . '@' . $MyRow->GrPhase; } // sets the WinLose Flag $WinLose = -1; $AthProp = '0'; $WhereProp = '0'; if (intval($MyRow->Score) > intval($MyRow->OppScore) || intval($MyRow->Score) == intval($MyRow->OppScore) && intval($MyRow->Tie) > intval($MyRow->OppTie)) { $WinLose = $MyRow->FinMatchNo; if ($MyRow->GrPhase >= 2) { $MyUpQuery = "UPDATE Finals SET\n\t\t\t\t\t\tFinAthlete =" . StrSafe_DB($MyRow->Athlete) . ",\n\t\t\t\t\t\tFinDateTime=" . StrSafe_DB($AthPropTs) . "\n\t\t\t\t\t\tWHERE FinEvent=" . StrSafe_DB($MyRow->Event) . " AND FinMatchNo=" . StrSafe_DB($MyRow->NextMatchNo) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']) . " "; $RsUp = safe_w_sql($MyUpQuery); $AthProp = $MyRow->Athlete; $WhereProp = $MyRow->OppAthlete; if ($MyRow->GrPhase == 2) { $MyUpQuery = "UPDATE Finals SET\n\t\t\t\t\t\t\tFinAthlete =" . StrSafe_DB($MyRow->OppAthlete) . ",\n\t\t\t\t\t\t\tFinDateTime=" . StrSafe_DB($AthPropTs) . "\n\t\t\t\t\t\t\tWHERE FinEvent=" . StrSafe_DB($MyRow->Event) . " AND FinMatchNo=" . StrSafe_DB($MyRow->NextMatchNo + 2) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']) . " "; $RsUp = safe_w_sql($MyUpQuery); } } } elseif (intval($MyRow->Score) < intval($MyRow->OppScore) || intval($MyRow->Score) == intval($MyRow->OppScore) && intval($MyRow->Tie) < intval($MyRow->OppTie)) { $WinLose = $MyRow->OppMatchNo; if ($MyRow->GrPhase >= 2) { $MyUpQuery = "UPDATE Finals SET "; $MyUpQuery .= "FinAthlete =" . StrSafe_DB($MyRow->OppAthlete) . ", "; $MyUpQuery .= "FinDateTime=" . StrSafe_DB($AthPropTs) . " "; $MyUpQuery .= "WHERE FinEvent=" . StrSafe_DB($MyRow->Event) . " AND FinMatchNo=" . StrSafe_DB($MyRow->NextMatchNo) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']) . " "; $RsUp = safe_w_sql($MyUpQuery); $AthProp = $MyRow->OppAthlete; $WhereProp = $MyRow->Athlete; if ($MyRow->GrPhase == 2) { $MyUpQuery = "UPDATE Finals SET "; $MyUpQuery .= "FinAthlete =" . StrSafe_DB($MyRow->Athlete) . ", "; $MyUpQuery .= "FinDateTime=" . StrSafe_DB($AthPropTs) . " "; $MyUpQuery .= "WHERE FinEvent=" . StrSafe_DB($MyRow->Event) . " AND FinMatchNo=" . StrSafe_DB($MyRow->NextMatchNo + 2) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']) . " "; $RsUp = safe_w_sql($MyUpQuery); } } } else { if ($MyRow->GrPhase >= 2) { $MyUpQuery = "UPDATE Finals SET "; $MyUpQuery .= "FinAthlete ='0', "; $MyUpQuery .= "FinDateTime=" . StrSafe_DB($AthPropTs) . " "; $MyUpQuery .= "WHERE FinEvent=" . StrSafe_DB($MyRow->Event) . " AND FinMatchNo=" . StrSafe_DB($MyRow->NextMatchNo) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']) . " "; $RsUp = safe_w_sql($MyUpQuery); if ($MyRow->GrPhase == 2) { $MyUpQuery = "UPDATE Finals SET "; $MyUpQuery .= "FinAthlete ='0', "; $MyUpQuery .= "FinDateTime=" . StrSafe_DB($AthPropTs) . " "; $MyUpQuery .= "WHERE FinEvent=" . StrSafe_DB($MyRow->Event) . " AND FinMatchNo=" . StrSafe_DB($MyRow->NextMatchNo + 2) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']) . " "; $RsUp = safe_w_sql($MyUpQuery); } } } // update the winner of previous match safe_w_sql("update Finals set FinWinLose=if(FinMatchNo=" . $WinLose . ", 1, 0) where FinMatchNo in (" . StrSafe_DB($MyRow->FinMatchNo) . "," . StrSafe_DB($MyRow->OppMatchNo) . ") AND FinEvent=" . StrSafe_DB($MyRow->Event) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']) . ""); $OldId = $AthProp != 0 ? StrSafe_DB($WhereProp) : StrSafe_DB($MyRow->Athlete) . ',' . StrSafe_DB($MyRow->OppAthlete); if ($OldId != "'0'") { // if Athlete and Opponent are both there or if athlete is not present // propagates the winner in next matches $Update = "UPDATE Finals SET " . "FinAthlete=" . StrSafe_DB($AthProp) . ", " . "FinDateTime=" . StrSafe_DB($AthPropTs) . " " . ($AthProp == 0 ? ', FinWinLose=0 ' : '') . "WHERE FinAthlete IN (" . $OldId . ") " . "AND FinTournament=" . StrSafe_DB($_SESSION['TourId']) . " " . "AND FinEvent=" . StrSafe_DB($MyRow->Event) . " " . "AND FinMatchNo<" . StrSafe_DB($MyRow->NextMatchNo) . " "; $RsProp = safe_w_sql($Update); } } } foreach ($CheckSaved as $MyEvent => $DoSave) { if (!$DoSave) { continue; } // we get here only if we check phase 64 and we have a starting phase of 48, so the first 8 are automatically put in the 16th matches // start putting a bye to the first 8 athletes in 24th $SqlUpdate = "UPDATE Finals inner join Grids on FinMatchNo=GrMatchNo and GrPhase=32 and GrPosition2<=8 and GrPosition2>0\n\t\t\tSET FinTie=2, FinWinLose=1, FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . "\n\t\t\tWHERE FinEvent=" . StrSafe_DB($MyEvent) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId']); safe_w_SQL($SqlUpdate); // Push the first 8 to 16th... postponed as it breaks the brackets in the infosystem // in write SQL as it must be certain that it takes the right people without waiting for replica!!! $q = safe_w_sql("select FinAthlete, GrPosition2 from Finals inner join Grids on FinMatchNo=GrMatchNo and GrPhase=64 and GrPosition2<=8 and GrPosition2>0\n\t\t\tWHERE FinEvent=" . StrSafe_DB($MyEvent) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId'])); while ($r = safe_fetch($q)) { safe_w_sql("UPDATE Finals inner join Grids on FinMatchNo=GrMatchNo and GrPhase=16 and GrPosition2={$r->GrPosition2}\n\t\t\tSET FinAthlete={$r->FinAthlete}, FinWinLose=1, FinDateTime=" . StrSafe_DB(date('Y-m-d H:i:s')) . "\n\t\t\tWHERE FinEvent=" . StrSafe_DB($MyEvent) . " AND FinTournament=" . StrSafe_DB($_SESSION['TourId'])); } } // se ho delle coppie calcolo per queste la RankFinal if (count($coppie) > 0) { Obj_RankFactory::create('FinalInd', array('eventsC' => $coppie))->calculate(); } return $AthPropTs; }
if ($varResponse[0] == 'OK' or $varResponse[0] == 'OK-1') { $_SESSION['OnlineAuth'] = stripslashes($_REQUEST['OnlineAuth']); } if ($varResponse[0] == 'OK' or $varResponse[0] == 'OK-2') { $_SESSION['OnlineAuthA2A'] = stripslashes($_REQUEST['OnlineAuthA2A']); } $_SESSION['OnlineId'] = intval($_REQUEST['OnlineId']); $_SESSION['OnlineEventCode'] = $code; $return = 'Tournament/UploadResults.php'; if (!empty($_REQUEST['return'])) { $return = $_REQUEST['return']; } // No header images for PDF... $_SESSION['SendOnlinePDFImages'] = trim($varResponse[1]) ? false : true; // sets the online code inside the tournament... safe_w_SQL("update Tournament set ToOnlineId=" . intval($_REQUEST['OnlineId']) . " where ToId={$_SESSION['TourId']}"); cd_redirect($CFG->ROOT_DIR . $return); } else { $ErrorMessage = get_text($varResponse[0], 'Tournament'); } } } $onlineId = empty($_SESSION['OnlineId']) ? '' : $_SESSION['OnlineId']; $onlineAuth = empty($_SESSION['OnlineAuth']) ? '' : $_SESSION['OnlineAuth']; $onlineAuthA2A = empty($_SESSION['OnlineAuthA2A']) ? '' : $_SESSION['OnlineAuthA2A']; $onlineEventCode = empty($_SESSION['OnlineEventCode']) ? 0 : $_SESSION['OnlineEventCode']; $PAGE_TITLE = get_text('SetCredentials', 'Tournament'); include 'Common/Templates/head.php'; ?> <div align="center"> <form name="Frm" method="POST" action="">
} $Value = sprintf('%02d:%02d:00', $t[0], $t[1]); } $q[] = "SchStart='{$Value}'"; break; case 'Duration': $Value = intval($Value); $q[] = "SchDuration='{$Value}'"; break; case 'Title': case 'SubTitle': case 'Text': $q[] = "Sch{$Field}=" . StrSafe_DB($Value); break; case 'Shift': if (strlen($Value)) { $Value = StrSafe_DB(intval($Value)); } else { $Value = 'null'; } $q[] = "SchShift=" . $Value; break; } } if ($HasDay) { safe_w_SQL("insert into Scheduler set " . implode(',', $q) . " on duplicate key update SchOrder=SchOrder+1, " . implode(',', $q)); } $Schedule = new Scheduler(); $Schedule->ROOT_DIR = $CFG->ROOT_DIR; $ret = array('error' => 0, 'txt' => getScheduleTexts(), 'sch' => $Schedule->getScheduleHTML('SET')); out($ret);
safe_w_SQL($MySql); db_save_version('2012-01-18 12:00:03'); } if ($version < '2012-01-20 10:36:00') { $q = "ALTER TABLE `TVSequence` ADD `TVSFullScreen` varchar(1) NOT NULL "; $r = safe_w_sql($q, false, array(1060)); db_save_version('2012-01-20 10:36:00'); } if ($version < '2012-01-24 15:16:00') { /* aggancio l'id del torneo alla griglia f2f */ // per prima cosa distruggo la griglia $q = "DROP TABLE IF EXISTS `F2FGrid`"; $r = safe_w_sql($q, false, array()); // poi la ricreo aggiungendo la colonna del torneo $q = "\n\t\tCREATE TABLE IF NOT EXISTS `F2FGrid` (\n\t\t `F2FTournament` int(10) unsigned NOT NULL,\n\t\t `F2FPhase` tinyint(3) unsigned NOT NULL,\n\t\t `F2FRound` tinyint(3) unsigned NOT NULL,\n\t\t `F2FMatchNo1` tinyint(3) unsigned NOT NULL,\n\t\t `F2FMatchNo2` tinyint(3) unsigned NOT NULL,\n\t\t `F2FGroup` tinyint(3) unsigned NOT NULL,\n\t\t PRIMARY KEY (`F2FTournament`,`F2FPhase`,`F2FRound`,`F2FMatchNo1`,`F2FMatchNo2`,`F2FGroup`)\n\t\t) ENGINE=MyISAM DEFAULT CHARSET=utf8;\n\t"; safe_w_SQL($q); // tiro furi le gare di tipo 21 dal db $q = "\n\t\tSELECT ToId\tFROM Tournament WHERE ToType=21\n\t"; $rs = safe_r_sql($q); if ($rs && safe_num_rows($rs) > 0) { while ($row = safe_fetch($rs)) { $q = insertIntoGridForF2F_21($row->ToId); $rs2 = safe_w_sql($q, false, array(1062)); } } db_save_version('2012-01-24 15:16:00'); } if ($version < '2012-01-26 14:48:00') { $q = "ALTER TABLE `F2FEntries` ADD `F2FRankFinal` SMALLINT( 6 ) NOT NULL DEFAULT '0' AFTER `F2FRankScore` ;"; $r = safe_w_sql($q, false, array(1060)); db_save_version('2012-01-26 14:48:00');
/** * This function is called on opening of a tournament and checks * if all flags and pictures are on disk (for TV output and Boinx Output) * and up to date * * It is also called on each TV Output or Boinx XML generation and only checks * if recent changes have been done getting the first file of the considered type * and checking its timestamp against the database. * * If a change has been done BUT the image seems to be wrong, the safest way is open the tournament * with another browser or from a different computer, to activate the first check! * */ function CheckPictures($TourCode = '', $open = false, $all = false, $force = false) { global $CFG; if ($all) { $TourCode = 'All'; $TourId = -1; } else { if (!$TourCode) { $TourCode = $_SESSION['TourCodeSafe']; } $TourId = getIdFromCode($TourCode); } $TourCodeSafe = preg_replace('/[^a-z0-9_.-]/sim', '', $TourCode); $OnlyNewer = ''; // starts with no filters at all if ($open) { $now = strtotime('-10 days'); // on opening of the tournament erase ALL the pictures older than 10 days; $Images = glob($CFG->DOCUMENT_PATH . 'TV/Photos/*.jpg'); foreach ($Images as $img) { if (filemtime($img) < $now) { unlink($img); } } } else { // in all other cases, sets the filter to one of the images of the tournament // NO GUARANTEE that it is the oldest or the most recent // but it should be enough because of the 1st step $Images = glob($CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-En-*.jpg'); if ($Images) { $OnlyNewer = filemtime($Images[0]); // create filter // speeds the process for the next time the function is called, as it will skip this file :) touch($Images[0]); } $Images = glob($CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-Fl-*.jpg'); if ($Images) { $OnlyNewer = max($OnlyNewer, filemtime($Images[0])); // create filter // speeds the process for the next time the function is called, as it will skip this file :) touch($Images[0]); } } if ($all) { // updates the multimedia content as well... $q = safe_r_sql("select * from TVContents where TVCMimeType in ('image/gif','image/jpeg','image/png') and TVCTournament in (-1, {$TourId})"); while ($r = safe_fetch($q)) { $im = imagecreatefromstring($r->TVCContent); imagejpeg($im, $CFG->DOCUMENT_PATH . 'TV/Photos/TV-' . ($r->TVCTournament == -1 ? 'BaseIanseo' : $TourCodeSafe) . '-' . ($r->TVCName == 'IdCardFooter' ? $r->TVCName : $r->TVCId) . '.jpg', 90); } // AND the Tour images as well... $q = safe_r_sql("select * from Tournament where ToId = {$TourId}"); if ($r = safe_fetch($q)) { @unlink($CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . 'ToLeft.jpg'); @unlink($CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . 'ToRight.jpg'); @unlink($CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . 'ToBottom.jpg'); if ($r->ToImgL and $im = @imagecreatefromstring($r->ToImgL)) { imagejpeg($im, $CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-ToLeft.jpg', 90); } if ($r->ToImgR and $im = @imagecreatefromstring($r->ToImgR)) { imagejpeg($im, $CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-ToRight.jpg', 90); } if ($r->ToImgB and $im = @imagecreatefromstring($r->ToImgB)) { imagejpeg($im, $CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-ToBottom.jpg', 90); } } // AND the Tour Backnumbers as well... $q = safe_r_sql("select BnFinal, BnBackground from BackNumber where BnTournament = {$TourId}"); if (!safe_num_rows($q)) { if (!$all) { createBackno($TourCodeSafe); } } else { while ($r = safe_fetch($q)) { if ($r->BnBackground and $im = @imagecreatefromstring($r->BnBackground)) { imagejpeg($im, $CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-BackNo-' . $r->BnFinal . '.jpg', 90); } } } // and the accreditation pictures too... $q = safe_r_sql("select IcBackground from IdCards where IcTournament = {$TourId}"); if ($r = safe_fetch($q)) { if ($r->IcBackground and $im = @imagecreatefromstring($r->IcBackground)) { imagejpeg($im, $CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-Accreditation.jpg', 90); } } $q = safe_r_sql("select IceContent, IceOrder from IdCardElements where IceTournament = {$TourId} and IceType='Image'"); while ($r = safe_fetch($q)) { if ($r->IceContent and $im = @imagecreatefromstring($r->IceContent)) { imagejpeg($im, $CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-Image-' . $r->IceOrder . '.jpg', 90); } } // and the Images too... $q = safe_r_sql("select * from Images where ImTournament = {$TourId}"); while ($r = safe_fetch($q)) { if ($r->ImContent and $im = @imagecreatefromstring($r->ImContent)) { imagejpeg($im, $CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-' . $r->ImIocCode . '-' . $r->ImSection . '-' . $r->ImReference . '-' . $r->ImType . '.jpg', 90); } } $Sql = "(select" . " 'Fl' PictureType, " . " FlCode PictureCode," . " FlJPG Picture," . " unix_timestamp(FlEntered) PictureTime " . "from" . " Flags " . "where" . " FlTournament = -1 " . " and FlJPG>'') " . "UNION " . "(select" . " 'Fl-svg', " . " FlCode," . " FlSVG," . " unix_timestamp(FlEntered) UnixTime " . "from" . " Flags " . "where" . " FlTournament = -1" . " and FlSVG>'') "; } else { $Sql = "(select" . " 'En' PictureType, " . " PhEnId PictureCode," . " PhPhoto Picture," . " unix_timestamp(PhPhotoEntered) PictureTime " . "from" . " Photos" . " left join Entries on EnId=PhEnId " . "where" . " EnTournament={$TourId} " . ($OnlyNewer ? " and unix_timestamp(PhPhotoEntered)>{$OnlyNewer} " : '') . " and PhPhoto>'') " . "UNION " . "(select" . " 'Fl', " . " FlCode," . " FlJPG," . " unix_timestamp(FlEntered) UnixTime " . "from" . " Flags " . " inner join Countries on FlCode=CoCode and CoTournament={$TourId} " . "where" . " FlTournament in (-1, {$TourId})" . ($OnlyNewer ? " and unix_timestamp(FlEntered)>{$OnlyNewer} " : '') . " and FlJPG>'') " . "UNION " . "(select" . " 'Fl-svg', " . " FlCode," . " FlSVG," . " unix_timestamp(FlEntered) UnixTime " . "from" . " Flags " . " inner join Countries on FlCode=CoCode and CoTournament={$TourId} " . "where" . " FlTournament in (-1, {$TourId})" . ($OnlyNewer ? " and unix_timestamp(FlEntered)>{$OnlyNewer} " : '') . " and FlSVG>'') "; } $q = safe_r_sql($Sql); while ($r = safe_fetch($q)) { if ($r->PictureType == 'Fl-svg') { $ImName = $CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-' . $r->PictureType . '-' . $r->PictureCode . '.svg'; if ($force or !file_exists($ImName) or filemtime($ImName) < $r->PictureTime) { $f = fopen($ImName, 'w'); fwrite($f, gzinflate($r->Picture)); fclose($f); } } else { $ImName = $CFG->DOCUMENT_PATH . 'TV/Photos/' . $TourCodeSafe . '-' . $r->PictureType . '-' . $r->PictureCode . '.jpg'; if ($force or !file_exists($ImName) or filemtime($ImName) < $r->PictureTime) { if ($im = @imagecreatefromstring(base64_decode($r->Picture))) { Imagejpeg($im, $ImName, 95); } elseif ($r->PictureType == 'En') { safe_w_SQL("delete from Photos where PhEnId={$r->PictureCode}"); } } } } }
// aggiungo la colonna x salvare se quella rank ha dei pari oppure no. $MySql = "ALTER TABLE `Eliminations` ADD `ElSO` TINYINT( 3 ) UNSIGNED NOT NULL DEFAULT '0' AFTER `ElRank`; "; safe_w_SQL($MySql, false, array(1060)); db_save_version('2010-11-29 11:03:00'); } if ($version < '2010-12-03 16:40:00') { // aggiungo la colonna x le frecce di spareggio delle eliminatorie $MySql = "ALTER TABLE `Eliminations` ADD `ElTiebreak` VARCHAR( 8 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `ElArrowString` ; "; safe_w_SQL($MySql, false, array(1060)); db_save_version('2010-12-03 16:40:00'); } if ($version < '2010-12-11 20:30:00') { $MySql = "ALTER TABLE `Individuals` CHANGE `IndSO` `IndSO` SMALLINT NOT NULL DEFAULT '0'"; safe_w_SQL($MySql); $MySql = "ALTER TABLE `Eliminations` CHANGE `ElSO` `ElSO` SMALLINT NOT NULL DEFAULT '0'"; safe_w_SQL($MySql); $MySql = "ALTER TABLE `HhtData` ADD `HdRealTargetNo` VARCHAR( 3 ) NOT NULL ,\n\t\tADD `HdLetter` VARCHAR( 1 ) NOT NULL"; safe_w_SQL($MySql, false, array(1060)); $MySql = "SELECT ToId From Tournament"; $rs = safe_r_SQL($MySql); while ($myRow = safe_fetch($rs)) { recalculateIndividuals_20101211($myRow->ToId); } //Riporto i QuRank e le freccie di Shootoff dalla tabella qualifications $MySql = "UPDATE Entries\n\t\tINNER JOIN Qualifications On QuId=EnId\n\t\tINNER JOIN EventClass ON EcTeamEvent=0 AND EcTournament=EnTournament AND EcClass=EnClass AND EcDivision=EnDivision\n\t\tINNER JOIN Individuals ON IndId=EnId AND IndEvent=EcCode AND IndTournament=EnTournament\n\t\tSET IndRank=QuRank, IndTieBreak=QuTieBreak\n\t\tWHERE QuRank!=0 AND (QuRank!=IndRank OR QutieBreak!=IndTieBreak)"; safe_w_SQL($MySql); //riporto la posizione dalla tabella finali... mi serve solo per partecipazioni ad eventi multi pli sennò bastava query sopra $MySql = "UPDATE Individuals\n\t\tINNER JOIN Finals ON IndId=FinAthlete AND IndEvent=FinEvent AND IndTournament=FinTournament\n\t\tINNER JOIN Events ON EvCode=FinEvent AND EvTeamEvent=0 AND EvTournament=FinTournament\n\t\tINNER JOIN Grids ON GrMatchNo=FinMatchNo AND GrPhase=IF(EvFinalFirstPhase=24,32,EvFinalFirstPhase)\n\t\tSET IndRank=GrPosition\n\t\tWHERE FinAthlete!=0 AND (EvElim1=0 AND EvElim2=0)"; safe_w_SQL($MySql); db_save_version('2010-12-11 20:30:00'); }
while ($row = safe_fetch($r)) { initTourGoldsXNineChars_20110309($row->ToId); } } db_save_version('2011-03-09 14:38:00'); } if ($version < '2011-03-11 18:25:00') { $MySql = "ALTER TABLE Finals ADD INDEX FinAthleteEventTournament (FinAthlete, FinEvent, FinTournament) "; safe_w_SQL($MySql, false, array(1061)); $MySql = "ALTER TABLE Eliminations ADD INDEX ElAthleteEventTournament (ElId, ElEventCode, ElTournament) "; safe_w_SQL($MySql, false, array(1061)); db_save_version('2011-03-11 18:25:00'); } if ($version < '2011-04-03 18:47:00') { $MySql = "ALTER TABLE Classes ADD ClDivisionsAllowed varchar(255) not null"; safe_w_SQL($MySql, false, array(1060, 1061)); db_save_version('2011-04-03 18:47:00'); } if ($version < '2011-04-15 15:55:00') { // i tornei nel db $q = "SELECT ToId FROM Tournament "; $r = safe_r_sql($q); if (safe_num_rows($r) > 0) { while ($row = safe_fetch($r)) { RecalcFinRank_20110415($row->ToId); } } db_save_version('2011-04-15 15:55:00'); } if ($version < '2011-04-18 18:35:00') { $q = "ALTER TABLE `Classes` DROP PRIMARY KEY , ADD PRIMARY KEY ( `ClId` , `ClTournament` , `ClDivisionsAllowed` )";