Ir para conteúdo
Fórum Script Brasil
  • 0

Ranking


Akira

Pergunta

Caros,

Estou desenvolvendo um site para jogos online e gostaria de efetuar o ranking dos jogadores dinamicamente através de uma consulta no MySQL.

Eu estava imaginando algo di tipo:

"Select count(*) from jogadores where pontos > pontos_jogador"

Onde pontos_jogador são os pontos do jogador que eu quero o ranking. O que a consulta faz é contar quantos jogadores possuem o campo pontos maior que o jogador que eu quero saber. Até aqui tudo bem, mas o problema é que esse sistema coloca todos os jogadores com o mesmo número de pontos no mesmo ranking!

Existe alguma forma de consultar o BD e incluir na conta um termo secundário como quantidade_de_vitorias? Exemplo:

"select count(*) from jogadores where pontos > pontos_jogador or quant_vitorias < quant_vitorias_jogador"

Obrigado

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Bom, vamos supor que você queira um com 10 registro no TOP de um jogo, então primeiro você faz uma busca:

$que = mysql_query("SELECT * FROM `rank` WHERE `jogo` = 'futonline' ORDER BY `pontuacao` DESC");
dai você vê qnts números tem nele
$n = mysql_num_rows($que);
dai um if pra identificar se o jogo é novo, caso seja, ele adiciona o valor simplismente no final da tabela, assim:
if($n < 10)
{
 mysql_query("INSERT INTO `rank` (`jogo`, `pessoa`, `pontuacao`) VALUES ('futonline', 'david', '1335530')");
}
else
{
 // Então, caso tenha mais que 10 valores, deverá remover o último dele.
 for($i=0; $i<10; $i++)
 {
  $a = mysql_fetch_array($que);
  $g_j = $a['jogo']; // Grava o nome do jogo
  $g_n = $a['pessoa']; // Grava o nome da pessoa
  $g_p = $a['pontuacao']; // Grava a pontuação dela
 }
 // Logo, depois de fazer o FOR $i, o valor de $g_x vai ser
 // As informações do 10 colocado.
 // Faça isso agora
 mysql_query("DELETE FROM `rank` WHERE `jogo`='$g_j' AND `pessoa`='$g_n' AND `pontuacao`='$g_p' LIMIT 1");
 // Depois inserir seu nome
 mysql_query("INSERT INTO `rank` (`jogo`, `pessoa`, `pontuacao`) VALUES ('futonline', 'david', '1335530')");
}

Flws! Espero ter ajudado!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...