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

Duvida PHP + MSSQL


Guest --lucas05 --

Pergunta

Guest --lucas05 --

Pessoal seguinte to fazendo um site pra jogo online e gostaria de sabe se é possivel eu descobri a posição de um resultado q puxo no mssql

o esquema é o seguinte tenho a coluna Nome , e a outra pontos , ai quando o cara loga-se queria q aparece tipo assim

10º lugar no Rank Geral

isso é possivel ? , se alguém sober como faço pra só acha a posição dele agradesso , tenho um sistema de rank também q baixa em orden o q tem mais ponto pro q tem menos , ai queria por na pagina do cara desse jeito ai , a posição q ele esta

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

mysql_connect("localhost", "mysql_user", "mysql_password") or

die("Could not connect: " . mysql_error());

mysql_select_db("mydb");

$result = mysql_query("SELECT nome, pontos FROM mytable limit 0,1000 order by pontos desc");

$posicao=0;

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

$posicao++;

if ($row["nome"] == $nomedocara) break;

}

mysql_free_result($result);

echo "posição = $posicao";

Eu não vejo outra solução melhor. Se você tem um banco de dados grande eu coloquei um limit na query do mysql para limitar os resultados em 1000 linhas. Assim a query não fica muito lenta e consome menos memória. Se o cara não estiver entre os 1000 primeiros então é melhor você não mostra a posição dele, exibe apenas uma mensagem dizendo que ele não está nos top 1000. Esses 1000 pode ser 100 ou 50, você decide o que é melhor pra você...

Espero ter ajudado

Editado por Leo Medina
Link para o comentário
Compartilhar em outros sites

  • 0

perfeito , isso que eu queria , muito obrigado pela ajuda

OBS: quando fiz a pergunta esqueci de loga no meu user heehhehehehe

mysql_connect("localhost", "mysql_user", "mysql_password") or

die("Could not connect: " . mysql_error());

mysql_select_db("mydb");

$result = mysql_query("SELECT nome, pontos FROM mytable limit 0,1000 order by pontos desc");

$posicao=0;

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

$posicao++;

if ($row["nome"] == $nomedocara) break;

}

mysql_free_result($result);

echo "posição = $posicao";

Eu não vejo outra solução melhor. Se você tem um banco de dados grande eu coloquei um limit na query do mysql para limitar os resultados em 1000 linhas. Assim a query não fica muito lenta e consome menos memória. Se o cara não estiver entre os 1000 primeiros então é melhor você não mostra a posição dele, exibe apenas uma mensagem dizendo que ele não está nos top 1000. Esses 1000 pode ser 100 ou 50, você decide o que é melhor pra você...

Espero ter ajudado

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...