Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia galera, tudo bem?
Estou com um grande problema e uma aplicação onde estou "tentando" fazer algo parecido com a tabela do Campeonato Brasileiro de Futebol conforme o link abaixo:
http://globoesporte.globo.com/futebol/brasileirao-serie-a/
A tabela, classificação e etc eu já desenvolvi e está funcionando perfeitamente. O problema real está nas indicações de posição do time. Se ele manteve a posição, caiu ou subiu, juntamente com a quantidade.
Tentei gerar este status criando duas colunas (posicao_anterior, posicao_atual) no banco de dados para ir gravando conforme os resultados, porém não deu certo.
Por exemplo:
12 - Figueirense (subiu 2 posições)
13 - Goiás (desceu 1 posição)
14 - Botafogo (desceu 1 posição)
Agora, se a rodada não terminou ainda, estas posição estão sujeitas a serem alteradas novamente.
Se alguém tiver uma "luz" para dar um empurrão nisso eu ficarei muito grato. Estou nisso a 1 semana e agora precisei recorrer ao Fórum
Obrigado!
Ai está um exemplo do code que eu havia feito.
Acredito que esta não seria a forma adequada para fazer o que preciso.
Esta parte é executada após o update do resultado do jogo
$p_visitante = $this->readFree("SELECT C.*, T.nome_time
FROM tb_campeonato_classificacao C
INNER JOIN tb_campeonato_times T ON(C.id_time = T.id)
WHERE C.id_campeonato = '" . $campeonato . "' AND id_time='" . $time_visitante . "'
ORDER BY pontos DESC, vitorias DESC, saldo_gols DESC, gols_pro DESC, nome_time");
foreach($p_visitante as $lista_posicao){
$this->readQuery("UPDATE tb_campeonato_classificacao SET posicao_atual = '" . $lista_posicao['posicao_anterior'] . "' WHERE id_campeonato = '" . $lista_posicao['id_campeonato'] . "' AND id_fase = '".$combo_fase."' AND id_time = '" . $time_visitante . "'");
}No seu modelo de dados se tem a informação da rodada ?
Se tem a informação dos jogos por rodada ?
Para saber se um time subiu ou nõ é preciso comparar sua posição na rodada N contra a posição na rodada (N-1).
Sim, possuo uma tabela onde guardo os jogos com o resultado e rodada
O problema maior está na seguinte situação:
O Time do Goiás, na rodada 18, estava na 9ª posição na tabela. Ai ele jogou e perdeu a partida, caindo uma posição (10ª) Porém este foi o único jogo das 18h30 do sábado.
No domingo acontecerá os outros jogos onde existem times que poderão subir na classificação e ultrapassar o Goiás.
Não consigo visualizar uma forma adequada para que este sobe e desce interaja de forma correta pois se eu guardar a posição da rodada anterior (9ª), no no primeiro momento ele irá calcular certinho a queda de 1 posição. Quando acontecerem os outros jogos do domingo, ele poderá cair mais posições. Ai dará errada a lógica disso tudo pois ele irá pegar a posição atual (10ª) para o cálculo do sobe e desce sendo que na real, ele estava na 9ª posição antes de começar a rodada.
Não sei se consegui explicar direitinho isso :)
Sim, possuo uma tabela onde guardo os jogos com o resultado e rodada
Nesta mesma tabela, guarde em que posições os times ficaram ao final da rodada.
Assim ficará bem fácil de fazer um "traceback" sem precisar recalcular tudo.
.... e assuma que os jogos que ainda não começaram estão 0X0, é uma forma.
Vc consegue a sql que define o ranking na rodada N !?
Show rapaziada. Irei fazer aplicar hoje estas dicas e dando certo irei postar o code aqui.
Obrigado!
Basta sempre fazer uma comparação atual com a classificação final da rodada anterior
Independente de quantos jogos ja teve sempre terá que recalcular
Faço isso na classificação de nosso bolão aqui mesmo no forum e funciona a contento
-------
Poderia posta o codigo php da página pra que possamos ter noção do você deve fazer.