Jump to content


------_

Member Since 14/09/2012
Offline Last Active 25/09/2012, 11:33
-----

Topics I've Started

Como Criar Tabelas De Campeonatos Divididos Por Rodadas Dinamicamente

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?

IPB Skin By Virteq