Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 28
Sexo: Masculino

Gerar Tabela para campeonato

20-06-2012 11:42

O que consegui foi isso, mas ele gera apenas para os 4 times, não sei o pq da errado, se alguém puder ajudar a melhorar esse código pra não ter falhas, Obs: de momento pode ser apenas com números pares de times

<?php $times = array('Time1', 'Time2', 'Time3', 'Time4', 'Time5', 'Time6'); //Array de Times $qtde_times = count($times); // Quantidade de Times $num_rodadas = $qtde_times - 1; //numero de rodadas $times_por_rodada = 2 * (int) ($qtde_times / 2); $casa = array(); //guarda os jogos de quem joga em casa $fora = array(); // guarda os jogos de quem joga fora $jogos = array(); // guarda os jogos no final $jogos_temp = array(); //array temporário, verifica quem já jogou em cada rodada for ($i = 0; $i < $qtde_times; $i++) { //For para caminhar entre os times for ($j = $i; $j < $qtde_times; $j++) { //For para caminha entre os adversários if ($times[$i] != $times[$j]) { //verifica pra não deixar jogar um time contra ele mesmo if ($j % 2 == 0) { //if pra ver quem joga em casa ou fora $casa[] = $times[$i]; $fora[] = $times[$j]; } else { $casa[] = $times[$j]; $fora[] = $times[$i]; }//fim do if / else de jogar em casa ou fora }// verifica se é diferente pra poder fazer o confronto }// fim do for que caminha entre os adversários }// fim do for que verifica os times // for($x=0; $x<count($casa); $x++){ echo $casa[$x] . " x " . $fora[$x] . "<br />"; } echo "<br />"; //parte que verifica quem já jogou em qual rodada for ($rodada = 0; $rodada < $num_rodadas; $rodada++) { for ($t = 0; $t < count($casa); $t++) { if (($casa[$t] != "") and ((in_array($casa[$t], $jogos_temp)) == false) and (((in_array($fora[$t], $jogos_temp)) == false))) { $jogos_temp[] = $casa[$t]; $jogos_temp[] = $fora[$t]; $casa[$t] = ""; $fora[$t] = ""; } } $jogos["Rodada: " . ($rodada + 1)] = $jogos_temp; $jogos_temp = array(); } for ($rod = 0; $rod < $num_rodadas; $rod++) { echo "Rodada: " . ($rod + 1) . "<br />"; for ($jog = 0; $jog < $times_por_rodada; $jog+=2) { echo $jogos["Rodada: " . ($rod + 1)][$jog] . " x " . $jogos["Rodada: " . ($rod + 1)][($jog + 1)] . "<br />"; } echo "<br />"; } ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17842
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Gerar Tabela para campeonato

20-06-2012 13:48

Esse erro aparentemente está sendo porque está tentando fazer algo sem dar. Dá uma analisada em todos valores usados na linha 46.
0
 
Primeiras postagens
Primeiras postagens
Mensagens: 1
Sexo: Masculino

Gerar Tabela para campeonato

19-08-2012 21:06

Galera

Agora da pra fazer tabela de campeonato de modo facil e rapido, e tudo automatizado. O SoleCorp Sports Manager eh free e em portugues e faz tudo automaticamente... a gente diz qts participantes tem e escolhe se quer pontos corridos, mata mata etc e ele gera as tabelas na hora. Tb imprime tudo e exporta pro Excel. Recomendo!!! he he he baixem em www.solecorp.com.br
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17842
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Gerar Tabela para campeonato

19-08-2012 21:17

Isso gera o código para mostrar os dados online na net?
0
 
Primeiras postagens
Primeiras postagens
Mensagens: 3

Re: Gerar Tabela para campeonato

15-06-2017 01:20

E a tabela conseguiu completar vamos tentar concluir o código também estou interessado.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17842
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Gerar Tabela para campeonato

15-06-2017 10:12

Olá neo. Esse post é bem antigo. Não lembrava mais dele. Agora com mais experiência notei que o erro gerado é pela quantidade de times no Array.

Esse código abaixo está corrigido e não gera erro.

<?php $times = array('Time1', 'Time2', 'Time3', 'Time4', 'Time5', 'Time6', 'Time7', 'Time8'); //Array de Times $qtde_times = count($times); // Quantidade de Times $num_rodadas = $qtde_times - 1; //numero de rodadas $times_por_rodada = 2 * (int) ($qtde_times / 2); $casa = array(); //guarda os jogos de quem joga em casa $fora = array(); // guarda os jogos de quem joga fora $jogos = array(); // guarda os jogos no final $jogos_temp = array(); //array temporário, verifica quem já jogou em cada rodada for ($i = 0; $i < $qtde_times; $i++) { //For para caminhar entre os times for ($j = $i; $j < $qtde_times; $j++) { //For para caminha entre os adversários if ($times[$i] != $times[$j]) { //verifica pra não deixar jogar um time contra ele mesmo if ($j % 2 == 0) { //if pra ver quem joga em casa ou fora $casa[] = $times[$i]; $fora[] = $times[$j]; } else { $casa[] = $times[$j]; $fora[] = $times[$i]; }//fim do if / else de jogar em casa ou fora }// verifica se é diferente pra poder fazer o confronto }// fim do for que caminha entre os adversários }// fim do for que verifica os times // for($x=0; $x<count($casa); $x++){ echo $casa[$x] . " x " . $fora[$x] . "<br />"; } echo "<br />"; //parte que verifica quem já jogou em qual rodada for ($rodada = 0; $rodada < $num_rodadas; $rodada++) { for ($t = 0; $t < count($casa); $t++) { if (($casa[$t] != "") and ((in_array($casa[$t], $jogos_temp)) == false) and (((in_array($fora[$t], $jogos_temp)) == false))) { $jogos_temp[] = $casa[$t]; $jogos_temp[] = $fora[$t]; $casa[$t] = ""; $fora[$t] = ""; } } $jogos["Rodada: " . ($rodada + 1)] = $jogos_temp; $jogos_temp = array(); } for ($rod = 0; $rod < $num_rodadas; $rod++) { echo "Rodada: " . ($rod + 1) . "<br />"; for ($jog = 0; $jog < $times_por_rodada; $jog+=2) { echo $jogos["Rodada: " . ($rod + 1)][$jog] . " x " . $jogos["Rodada: " . ($rod + 1)][($jog + 1)] . "<br />"; } echo "<br />"; } ?>

Não entendo nada de rodada de futebol. Mas o resultado do código acima com mais dois times foi o seguinte:

Time2 x Time1
Time1 x Time3
Time4 x Time1
Time1 x Time5
Time6 x Time1
Time1 x Time7
Time8 x Time1
Time2 x Time3
Time4 x Time2
Time2 x Time5
Time6 x Time2
Time2 x Time7
Time8 x Time2
Time4 x Time3
Time3 x Time5
Time6 x Time3
Time3 x Time7
Time8 x Time3
Time4 x Time5
Time6 x Time4
Time4 x Time7
Time8 x Time4
Time6 x Time5
Time5 x Time7
Time8 x Time5
Time6 x Time7
Time8 x Time6
Time8 x Time7

Rodada: 1
Time2 x Time1
Time4 x Time3
Time6 x Time5
Time8 x Time7

Rodada: 2
Time1 x Time3
Time4 x Time2
Time5 x Time7
Time8 x Time6

Rodada: 3
Time4 x Time1
Time2 x Time3
Time8 x Time5
Time6 x Time7

Rodada: 4
Time1 x Time5
Time6 x Time2
Time3 x Time7
Time8 x Time4

Rodada: 5
Time6 x Time1
Time2 x Time5
Time8 x Time3
Time4 x Time7

Rodada: 6
Time1 x Time7
Time8 x Time2
Time3 x Time5
Time6 x Time4

Rodada: 7
Time8 x Time1
Time2 x Time7
Time6 x Time3
Time4 x Time5


Tem alguns vídeos no Youtube também sobre o assunto. Como esse abaixo
0
 
Primeiras postagens
Primeiras postagens
Mensagens: 3

Re: Gerar Tabela para campeonato

06-07-2018 20:33

E PRA PEGAR OS TIMES DO ARRAY DO BANCO MYSQL E COMO CRIAR A TABELA DE CLASSIFICAÇÃO?
TIPO:
TIME 1 GOLS > GOLS DO TIME 2 = 3 PONTOS
TIME 1 GOLS = GOLS DO TIME 2 = 1 PONTO
TIME 1 GOLS < GOLS DO TIME 2 = 0 PONTO

E CLARO PLACAR MAIOR 3 PONTOS NÃO IMPORTANDO A ORDEM SE TIME 1 OU TIME 2.

ALGUMA IDÉIA DE COMO BOLAR O SQL DE UMA TABELA DE CLASSIFICAÇÃO PUXANDO DOS JOGOS DE CADA RODADA.

E TAMBÉM CRIANDO REGRAS DE DESEMPATE EM CASO DE EMPATE.
EX.: PONTOS, VITÓRIAS, GOLS MARCADOS, SALDO DE GOLS, GOLS SOFRIDOS E JOGOS ENTRE EQUIPES.

LEMBRANDO QUE TUDO ISSO USANDO BANCO DE DADOS MYSQL.
0
 
Primeiras postagens
Primeiras postagens
Mensagens: 3

Re: Gerar Tabela para campeonato

06-07-2018 20:53

E COMO CRIAR A TABELA DE CLASSIFICAÇÃO?
TIPO:
TIME 1 GOLS > GOLS DO TIME 2 = 3 PONTOS
TIME 1 GOLS = GOLS DO TIME 2 = 1 PONTO
TIME 1 GOLS < GOLS DO TIME 2 = 0 PONTO

E CLARO PLACAR MAIOR 3 PONTOS NÃO IMPORTANDO A ORDEM SE TIME 1 OU TIME 2.

ALGUMA IDÉIA DE COMO BOLAR O SQL DE UMA TABELA DE CLASSIFICAÇÃO PUXANDO DOS JOGOS DE CADA RODADA.

E TAMBÉM CRIANDO REGRAS DE DESEMPATE EM CASO DE EMPATE.
EX.: PONTOS, VITÓRIAS, GOLS MARCADOS, SALDO DE GOLS, GOLS SOFRIDOS E JOGOS ENTRE EQUIPES.

LEMBRANDO QUE TUDO ISSO USANDO BANCO DE DADOS MYSQL.

EXEMPLO:
TIMES = PONTOS | VITÓRIAS | EMPATE | DERROTA | GOLS MARCADOS | GOLS SOFRIDOS | GM - GS = SALDO DE GOLS | (V+E+D)= TOTAL DE JOGOS

EX: CLASSIFICAÇÃO:
1º TIME4 = 20 | 5 | 5 | 0 | 30 | 5 | 25 | 10
2º TIME7 = 14 | 3 | 5 | 2 | 22 | 8 | 14 | 10
2º TIME8 = 14 | 3 | 5 | 2 | 22 | 9 | 13 | 10
4º TIME3 = 8 | 2 | 2 | 6 | 14 | 8 | 6 | 10
5º TIME1 = 7 | 2 | 1 | 7 | 12 | 10 | 2 | 10
6º TIME5 = 6 | 2 | 0 | 8 | 8 | 14 | -6 | 10
7º TIME6 = 4 | 1 | 1 | 8 | 7 | 20 | -13 | 10
8º TIME2 = 2 | 0 | 2 | 8 | 7 | 30 | -23 | 10
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17842
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Gerar Tabela para campeonato

09-07-2018 11:56

Eu não entendo das regras de um campeonato.

A princípio você pode criar uma tabela com os campos que você citou:

TIMES = PONTOS | VITÓRIAS | EMPATE | DERROTA | GOLS MARCADOS | GOLS SOFRIDOS | GM - GS = SALDO DE GOLS | (V+E+D)

Para a classificação você pode usar regras específicas na própria query, como por exemplo exibir os times com o saldo de gols maior.

Ai creio que seria necessário criar uma SQL só para rodadas, ai vai inserindo e retirando os times das rodadas de acordo com os jogos.
0
 
Primeiras postagens
Primeiras postagens
Mensagens: 1

Re: Gerar Tabela para campeonato

27-08-2018 17:57

Muito bacana esse código ! Funcionou perfeitamente para 8 equipes, mas se tento colocar com 6 ou 10 equipes não funciona, pois somente a 1º rodada fica completa.

Estou quebrando a cabeça aqui mas isso está fora de meu alcance, não consigo fazer funcionar com 6 equipes.

Alguém poderia me ajudar ?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17842
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Gerar Tabela para campeonato

28-08-2018 15:12

Olá kernelpanic777. As configurações podem ser definidas nessas linhas.

$qtde_times = count($times); // Quantidade de Times $num_rodadas = $qtde_times - 1; //numero de rodadas $times_por_rodada = 2 * (int) ($qtde_times / 2);

Eu não sei as regras de um campeonato, por exemplo número de rodadas, jogos por rodadas, etc.
Se você souber as regras que precisa usar me informe que posso dar algumas dicas.
0

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado