/** * Atualiza a classificação conforme o placar do jogo setado * * @param <type> $grupo * Id do grupo que está sendo modificado * @param <type> $time * Time da casa * @param <type> $time2 * Time fora de casa * @param <type> $golsT1 * Gols do time da casa * @param <type> $golsT2 * gols do time visitante * @param <type> $golsOldT1 * Se o placar está sendo modificado, os gols que estavam armazenados anteriormente * @param <type> $golsOldT2 * Idem ao $golsOldT1 */ public function atualizaClassificacao($grupo, $time, $time2, $golsT1, $golsT2, $golsOldT1 = '', $golsOldT2 = '') { session_start(); $sql = "SELECT * FROM classificacao WHERE idGrupo = :grupo AND (idTime = :time1 OR idTime = :time2) LIMIT 0,2"; $query = $this->pdo->prepare($sql); $query->bindParam(':grupo', $grupo); $query->bindParam(':time1', $time); $query->bindParam(':time2', $time2); $k = 1; $sql2 = "UPDATE classificacao SET golsPro = :golsPro, golsContra = :golsContra,\n vitoria = :vitoria, empate = :empate, derrota = :derrota\n WHERE idGrupo = :grupo AND idTime = :time"; if ($golsOldT1 != '' && $golsOldT2 != '') { $this->resetaClassificacao($grupo, $time, $time2, $golsOldT1, $golsOldT2, $sql2, $query); } $query->execute(); $row2 = $query->fetchAll(PDO::FETCH_ASSOC); foreach ($row2 as $classificacao) { $vitoria = $classificacao['vitoria']; $derrota = $classificacao['derrota']; $empate = $classificacao['empate']; $golsPro = $classificacao['golsPro']; $golsContra = $classificacao['golsContra']; if ($classificacao['idTime'] == $time) { if ($golsT1 - $golsT2 > 0) { $vitoria += 1; } elseif ($golsT1 - $golsT2 == 0) { $empate += 1; } elseif ($golsT1 - $golsT2 < 0) { $derrota += 1; } $golsPro += $golsT1; $golsContra += $golsT2; $timeEdita = $time; } elseif ($classificacao['idTime'] == $time2) { if ($golsT2 - $golsT1 > 0) { $vitoria += 1; } elseif ($golsT2 - $golsT1 == 0) { $empate += 1; } elseif ($golsT2 - $golsT1 < 0) { $derrota += 1; } $golsPro += $golsT2; $golsContra += $golsT1; $timeEdita = $time2; } $query2 = $this->pdo->prepare($sql2); $query2->bindParam(':golsPro', $golsPro); $query2->bindParam(':golsContra', $golsContra); $query2->bindParam(':vitoria', $vitoria); $query2->bindParam(':empate', $empate); $query2->bindParam(':derrota', $derrota); $query2->bindParam(':grupo', $grupo); $query2->bindParam(':time', $timeEdita); $query2->execute(); $k++; } $_SESSION['grupo' . $grupo] += 1; echo $_SESSION['grupo' . $grupo]; if ($_SESSION['grupo' . $grupo] == 6) { //se o grupo estiver finalizado, classifica-se os times $sqlClassificados = "SELECT grupo.idCampeonato,\n classificacao.idGrupo, classificacao.idTime,\n ((classificacao.vitoria*3) + (classificacao.empate)) AS pontos, classificacao.vitoria,\n classificacao.empate, classificacao.derrota, classificacao.golsPro AS gp,\n classificacao.golsContra as gc,\n (classificacao.golsPro - classificacao.golsContra) as saldo\n FROM classificacao, grupo, time\n WHERE classificacao.idGrupo = :grupo AND grupo.id = classificacao.idGrupo\n AND time.id = classificacao.idTime ORDER BY pontos DESC, saldo DESC,\n golsPro DESC LIMIT 0, 2"; $q = $this->pdo->prepare($sqlClassificados); $q->bindParam(':grupo', $grupo); $q->execute(); $classificados = $q->fetchAll(PDO::FETCH_ASSOC); echo sizeof($classificados); require_once "../Construcao/gerenciadores/GerenciaJogosMataMata.php"; require_once "JogoMataMataDao.php"; $gerenciaMataMata = new GerenciaJogosMataMata(); $gerenciaMataMata->setClassificadosPrimeiraFase($classificados, 1); } }