Jump to content


Photo

Ajuda Com Criação De Ranking


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

#1 Hünter

Hünter

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Masculino
  • Localidade:Somewere
  • Interesses:Everything

Posted 22/03/2012, 10:45

Estou com um problema com a cração de um ranking. Preciso que ao dar empate entre dois resultados, seja exibido o lugar para os dois. EX:

Orndem dos dados: Posição - Nome - vitorias - pontos

1º (concorrente1) - 2 - 4
1º (concorrente2) - 2 - 4
3º (concorrente3) - 1 - 4
4º (concorrente4) - 1 - 3

Minha query: $rank = mysql_query("SELECT * FROM users order by pts desc, vitorias desc ");

Observem que os dois primeiros concorrentes estão empatados nos dois quesitos, então eu gostaria que fosse atribuido o primeiro luga aos dois.

Bom esta é minha missão que prentendo completar com a ajuda de vcs, desde já agradeço. FLW

Edição feita por: Hünter, 22/03/2012, 10:47.


#2 Squall Robert

Squall Robert

    Mr. Squall - Mais Carne do que Osso (hihi)

  • Usuários
  • 507 posts
  • Sexo:Masculino
  • Localidade:Curitiba
  • Interesses:Php ... Php...Php

Posted 22/03/2012, 13:28

vc vai ter que tratar isso no php

dentro do lopping vc quarda os valores de cada item que passa em variaveis para comparar com o proximo.

como vc estar rodenando vai estar sempre na ordem correta.

ai é so comparar se os dados que definema ordem sãoi iguais e so atribuir o mesmo ranking

mais ou menos isss


rankking = 0;
$var_vitorias = '';
$var_potnos = '';
while(// lopping com os dados)
{
  if($var_vitorias == $dados['vitoria'] && $var_potnos == $dados['pontos'])
  { 
     $rannking = $rankking;
  }
  else 
  { 
    $rankking++;
  }
  
  echo $rankking . "º - ". $nome; . "<br>";

  $var_vitorias = $dados['vitoria'];
  $var_potnos = $dados['pontos'];

}


Edição feita por: Squall Robert, 22/03/2012, 13:31.

<?php

$squall = new Squall();

$squall->Ajudando("você");

$resultado = $squall->solucao();  ?>

#3 Hünter

Hünter

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Masculino
  • Localidade:Somewere
  • Interesses:Everything

Posted 22/03/2012, 14:17

Muito obrigado! Squall Robert

O seu exemplo me serviu muito bem, abaixo está o exemplo funcionando direitinho.

<?php
$ranking = 0;
$pesquisa = mysql_query("SELECT * FROM users order by pts desc, vitorias desc ");

while($resultado = mysql_fetch_array($pesquisa)){
if($vitorias == $resultado['vitorias'] && $pts == $resultado['pts'])
{ $ranking = $ranking;}else { $ranking++;}

$id = $resultado['id'];
$nome = $resultado['nome'];
$vitorias = $resultado['vitorias'];
$pts = $resultado['pts'];

  

?>
<table width="400" border="0" cellpadding="1" cellspacing="1">
  <tr>
    <td width="36" bgcolor="#B4DCC1"><?php echo $ranking ?></td>
    <td width="278" bgcolor="#B4DCC1"><?php echo $nome ?></td>
    <td width="37" bgcolor="#B4DCC1">	<?php echo $vitorias ?></td>
    <td width="36" bgcolor="#B4DCC1">	<?php echo $pts ?></td>
  </tr>
</table>

<?php }?>

Mais uma vez agradeço a ajuda.

Edição feita por: Hünter, 22/03/2012, 14:29.


#4 Squall Robert

Squall Robert

    Mr. Squall - Mais Carne do que Osso (hihi)

  • Usuários
  • 507 posts
  • Sexo:Masculino
  • Localidade:Curitiba
  • Interesses:Php ... Php...Php

Posted 22/03/2012, 19:00

Clica no maiszinho ali do post para dezer que te ajudou
<?php

$squall = new Squall();

$squall->Ajudando("você");

$resultado = $squall->solucao();  ?>




0 user(s) are reading this topic

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

IPB Skin By Virteq