Jump to content


Photo

Como Criar Tabelas De Campeonatos Divididos Por Rodadas Dinamicamente


  • Faça o login para participar
3 replies to this topic

#1 ------_

------_

    Novato no fórum

  • Usuários
  • 2 posts
  • Sexo:Masculino

Posted 14/09/2012, 13:00

Boa tarde, Pessoal
Preciso criar um sistema em php com mysql, sendo que após inserir os times que disputarão o campeonato, o sistema faça todos jogarem com todos uma única vez e os separem por rodadas, sendo que nessas rodadas não pode repetir time (Ex.: Estilo campeonato brasileiro).
Eu fiz o seguinte código que faz uma análise combinatória e faz com que todos joguem com todos uma vez:

$nome_temporario=$_FILES["arquivo"]["tmp_name"];/* Pega o arquivo*/
$nome_arquivo = "ARQUIVO.csv"; // qualquer que seja o nome enviado e renomeado
copy($nome_temporario,"arquivos/$nome_arquivo");

$abraArq = fopen("arquivos/ARQUIVO.csv", "r");
//Apenas para ficar com mais controle melhor colocar um tratamento de erros caso o arquivo são seja aberto ai use as condições if e else. E imprima na tela com um echo()
if (!$abraArq){
echo ("<p>Arquivo não encontrado</p>");
}else{
// Caso abra faça isso agora
// usando a nova função do php 5 fgetcsv() o 2048 é apenas para colocar o número máximo de caracteres por linha.
// crie uma variável chamada $valores o que vai corresponder pelos valores das colunas para serem inseridas.
while ($valores = fgetcsv ($abraArq, 2048, ";")) {
// Só criar agora o construtor que pegou os valores das colunas do arquivo csv. E começar a inserir dentro da base de dados.
$nome1 = $valores[0];
$nome2 =explode(" ",$nome1);
$nome = $nome2[0]." ".$nome2[1];
$mes = $_POST['mes'];
$supervisor = $_POST['supervisor'];

$result = mysql_query("INSERT INTO jogadores (nome, mes, supervisor) values ('$nome', '$mes', '$supervisor')");

}
fclose($abraArq);


unlink("arquivos/$nome_arquivo");

$mes1 = $_POST['mes'];
$sql_conta_times = mysql_query("SELECT nome FROM jogadores WHERE mes='$mes1'");
$cont_times = mysql_num_rows($sql_conta_times);
$cont_times1 = $cont_times;
$i =1;
while($i < $cont_times){
	$i++;
	
	$times_jogos = $i - 2;
$sql_conta_times1 = mysql_query("SELECT nome FROM jogadores WHERE mes='$mes1' LIMIT $times_jogos,1");
	
	while($linha_times = mysql_fetch_array($sql_conta_times1)){
	$time1 = $linha_times['nome'];
	$i2 = 0;
	$cont_times1--;
	while($i2 < $cont_times1){
	
	$rodada = $i2;
	
	$time1c = $time1;
	$sql_conta_times2 = mysql_query("SELECT nome FROM jogadores WHERE mes='$mes1' and nome!='$time1c' ORDER BY id DESC LIMIT $rodada,1");
	
	while($linha_times2 = mysql_fetch_array($sql_conta_times2)){
	$time2 = $linha_times2['nome'];
	$confere1 = $time1c.$time2;
	$confere2 = $time2.$time1c;
	echo $time1c." X ".$time2."<br>";
	
	
	 }
	$i2++;
	}
    

	}

	
	}

Com esse calculo faço todo mundo jogar com todo mundo, mas não sei como separar em rodadas.

Alguém consegue me ajudar?

#2 shayllis

shayllis

    12 Horas

  • Usuários
  • 152 posts
  • Sexo:Masculino
  • Localidade:Barueri - SP
  • Interesses:PHP, MySQL, ASP.NET C# e VB, DreamWeaver, VisualStudio, JavaScript

Posted 15/09/2012, 19:10

Bom o que você poderia fazer seria registrar as rodadas de formas indivíduais... exemplo... tabela resultados:

id, time1,time2,gol1, gol2

acredito que seria mais fácil assim... porque sem guardar rodada a rodada... só deixando na RAM o processo sem para XD

#3 ------_

------_

    Novato no fórum

  • Usuários
  • 2 posts
  • Sexo:Masculino

Posted 18/09/2012, 11:24

Bom o que você poderia fazer seria registrar as rodadas de formas indivíduais... exemplo... tabela resultados:

id, time1,time2,gol1, gol2

acredito que seria mais fácil assim... porque sem guardar rodada a rodada... só deixando na RAM o processo sem para XD


Entendo, mas isso ficaria muito trabalhoso. rsrsrs.
Preciso que o sistema fique automático.

Abs,

Hussay

#4 silici0

silici0

    ?

  • Usuários
  • 902 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:PHP, MySQL, XHTML, CSS, AJAX, JavaScript, Objective-C, Python, Games ... #geek

Posted 18/09/2012, 15:03

Olá, eu nao entendo de futebol, rodadas são os jogos ?

A dificuldade se diz na hora de guardar os resultados ? Você tem que fazer tabelas relacionas com varios indices :)


table : time
id : nome : jodador_id

table : jogador
id : nome : dados

table : ano
id : ano

table : campeonato
id : ano_id, time1_id, time2_id : resultado

table : statisticas
id : campeonato_id : jogador_id (quem fez o gol) : tempo_jogo


Acho que é algo desse genero : sobre normalizacao de banco : http://pt.wikipedia....ação_de_dados

Abraços
Procurando freelancer
***********************************************
Bachelor of Technology in Technology of Information, with great knowledge in Windows operating systems and Unix-Like (BSD, Ubuntu and Slackware), languages (PHP, JavaScript and MySQL), semantic (DHTML, Tableless, Ajax, MVC, OO) and analysis (manages projects based on PMI).
Developer in PHP, JAVA, Python, Objective-c MySQL, DHTML, CSS, JAVASCRIPT, JQUERY, JSON, SMARTY, MDB2, DOCTRINE, CAKEPHP. Linux desktop for work and MacOS. E-commerces, CRM and bussiness strategys
Love-me and be FREE use UniCes-Like .




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq