Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Hussay

Criar rodada de campeonato com select

Recommended Posts

Bom dia pessoal.

Criei uma tabela no meu banco de dados onde todos jogam com todos sem repetir:

id mês pontos1 time1 placar1 placar2 time2

63 8 0 MARYELLEN NEVES 0 0 BRUNO CESAR

64 8 0 MARYELLEN NEVES 0 0 DIEGO TADEU

65 8 0 MARYELLEN NEVES 0 0 ALEXSANDRO APARECIDO

66 8 0 MARYELLEN NEVES 0 0 ELAINE CRISTINA

67 8 0 MARYELLEN NEVES 0 0 RUBIA GRAZIELLE

68 8 0 MARYELLEN NEVES 0 0 POLYANA KIVIA

69 8 0 MARYELLEN NEVES 0 0 CLERISTA TAISA

70 8 0 CLERISTA TAISA 0 0 BRUNO CESAR

71 8 0 CLERISTA TAISA 0 0 DIEGO TADEU

72 8 0 CLERISTA TAISA 0 0 ALEXSANDRO APARECIDO

73 8 0 CLERISTA TAISA 0 0 ELAINE CRISTINA

74 8 0 CLERISTA TAISA 0 0 RUBIA GRAZIELLE

75 8 0 CLERISTA TAISA 0 0 POLYANA KIVIA

76 8 0 POLYANA KIVIA 0 0 BRUNO CESAR

77 8 0 POLYANA KIVIA 0 0 DIEGO TADEU

78 8 0 POLYANA KIVIA 0 0 ALEXSANDRO APARECIDO

79 8 0 POLYANA KIVIA 0 0 ELAINE CRISTINA

80 8 0 POLYANA KIVIA 0 0 RUBIA GRAZIELLE

81 8 0 RUBIA GRAZIELLE 0 0 BRUNO CESAR

82 8 0 RUBIA GRAZIELLE 0 0 DIEGO TADEU

83 8 0 RUBIA GRAZIELLE 0 0 ALEXSANDRO APARECIDO

84 8 0 RUBIA GRAZIELLE 0 0 ELAINE CRISTINA

85 8 0 ELAINE CRISTINA 0 0 BRUNO CESAR

86 8 0 ELAINE CRISTINA 0 0 DIEGO TADEU

87 8 0 ELAINE CRISTINA 0 0 ALEXSANDRO APARECIDO

88 8 0 ALEXSANDRO APARECIDO 0 0 BRUNO CESAR

89 8 0 ALEXSANDRO APARECIDO 0 0 DIEGO TADEU

90 8 0 DIEGO TADEU 0 0 BRUNO CESAR

 

Os times que formaram essa tabela foram:

MARYELLEN NEVES

CLERISTA TAISA

POLYANA KIVIA

RUBIA GRAZIELLE

ELAINE CRISTINA

ALEXSANDRO APARECIDO

DIEGO TADEU

BRUNO CESAR

 

 

Agora preciso na minha página php, mostrar separando por rodadas, estilo campeonato brasileiro, sem repetir um time na rodada.

Me ajudem por favor:

<? /*Pega o mês*/
if(empty($_GET['mes'])){
$mes = date('m');

}else {
	$mes = $_GET['mes'];
	}
	/*Fim Pega o mês*/
	/*Decide quantas rodadas*/
$rodadas1 = mysql_query("SELECT nome FROM jogadores WHERE mes='$mes'");
$cont_rodadas1 = mysql_num_rows($rodadas1);
$rodadas = $cont_rodadas1 - 1;
$loop_rodadas = 0;
while($loop_rodadas < $rodadas){
$loop_rodadas++;
/*Fim Decide quantas rodadas (loop em toda tabela*/
?>
<table width="500px" border="1" cellspacing="0" cellpadding="0" align="center">
 <tr>
     <td height="32" colspan="6" align="center" valign="middle"><? echo $loop_rodadas; ?>ª Rodada</td>
   </tr>
 <tr>
 <td align="center">id</td>
   <td align="center">TIME1</td>
   <td align="center"> </td>
   <td align="center">X</td>
   <td align="center"> </td>
   <td align="center">TIME 2</td>
 </tr>
 <?
 	  $posicao = $loop_rodadas -1;/* Posição 0 na busca*/
    /* Busca o primeiro jogo*/$inicio1 = mysql_query("SELECT * FROM jogos WHERE mes='$mes' LIMIT $posicao,1");
  while($linha_inicio = mysql_fetch_array($inicio1)){
  $inicio = $linha_inicio['id'];/*Id do primeiro time*/
  }



 $jogos = mysql_query("SELECT * FROM jogos WHERE mes='$mes' and id='$inicio'");
 while($linha_jogos = mysql_fetch_array($jogos)){
  $time1 = $linha_jogos['time1'];
  $placar1 = $linha_jogos['placar1'];
  $placar2 = $linha_jogos['placar2'];
  $time2 = $linha_jogos['time2'];
  $id = $linha_jogos['id'];
  /*Fim da Busca do primeiro jogo*/

 ?>
 <tr>
 <td align="center"><? echo $id;?></td>
   <td align="center"><? echo $time1;?></td>
   <td align="center"><? echo $placar1; ?></td>
   <td align="center">X</td>
   <td align="center"><? echo $placar2; ?></td>
   <td align="center"><? echo $time2; ?></td>
 </tr> 
 <tr>

 <? } 
/* Busca o restante dos jogos da rodada sem repetir nenhum time (onde está o erro segundo minha percepção*/
  $jogos1 = mysql_query("SELECT * FROM jogos WHERE mes='$mes' and time1!='$time1' and time1!='$time2' and time1!='$time5' and time1!='$time6' and time2!='$time1' and time2!='$time2' and time2!='$time5' and time2!='$time6'");
 while($linha_jogos = mysql_fetch_array($jogos1)){
  $time1 = $linha_jogos['time1'];
  $placar1 = $linha_jogos['placar1'];
  $placar2 = $linha_jogos['placar2'];
  $time2 = $linha_jogos['time2'];
  $id = $linha_jogos['id'];
  $time5 =  $time1;
  $time6 =  $time2;

   ?>
   <tr>
 <td align="center"><? echo $id;?></td>
   <td align="center"><? echo $time1;?></td>
   <td align="center"><? echo $placar1; ?></td>
   <td align="center">X</td>
   <td align="center"><? echo $placar2; ?></td>
   <td align="center"><? echo $time2; ?></td>
 </tr> 

 <? } ?>


</table>
<? } ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, não é mais facil você trazer todos os times no select e tratar de exibir ou não através do PHP ??

 

Dai voce pode fazer assim, conforme for exibindo os times, vai adicionando num array, e sempre que for exibir um novo time, consulta esse array para verificar se ele já foi inserido...

 

 

Imagina se o camarada fala, quero adicionar mais um time, do jeito que tá ai, vai ficar complicado...

 

Edit: To lendo aqui, mas nao compreendi direito o seu problema. Como assim os times não podem se repetir ?? como voce sabe quando foi aquela rodada se todos os jogos foram no mesmo mes ??

Pq dependendo e como for, um Group By resolve o seu problema....

Compartilhar este post


Link para o post
Compartilhar em outros sites

time
---
nome

 

SELECT T1.NOME TIME1,T2.NOME TIME2
FROM TIME T1,TIME T2
WHERE T1.NOME <> T2.NOME
ORDER BY 1,2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Enteni que minha dúvida ficou confusa.

Para ficar mais fácil, vocês me ajudarem, eu preciso fazer uma tabela tipo a do campeonato brasileiro, só que o nome dos times, são de pessoas.

Os times que formaram essa tabela são:

tabela (jogadores) (no mysql) foi construída assim:

id

----

nome

 

O conteúdo da tabela (jogadores) é:

 

1 | MARYELLEN NEVES

2 | CLERISTA TAISA

3 | POLYANA KIVIA

4 | RUBIA GRAZIELLE

5 | ELAINE CRISTINA

6 | ALEXSANDRO APARECIDO

7 | DIEGO TADEU

8 | BRUNO CESAR

 

Abs,

 

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.