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

[Dúvida] Ordenar valores de tabelas


Guest --Pedro --

Pergunta

Guest --Pedro --

Olá pessoal da scriptbrasil, estou com problemas em ordenar valores de uma tabela via PHP.

Meu código é esse:

$rank = $db->Execute("select TotalScore, TotalGrade, count(TotalGrade) as count from game where TotalGrade <= -2 group by TotalGrade");

Nesse códio ele agrupa os diferentes níveis mostrando o total de jogadores de cada nível e mostra o TotalScore do primeiro colocado de cada nível, mas infelizmente não é isso que eu quero.

Eu gostaria de mostrar o TotalScore do último colocado de cada nível.

Já tentei de várias maneiras mas não consegui.

Uma foto de como está a minha tabela vista pelo site que estou criando:

assaasvc0.png

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0
Guest --Pedro --
Oi, Pedro!

Por restrições de acesso, não consigo ver a foto que você enviou. Pode remetê-la para

processos4@capemi.com.br, por favor?

Pronto, já enviei um e-mail com a imagem anexada, aguardo uma solução para a minha dúvida :rolleyes:

Link para o comentário
Compartilhar em outros sites

  • 0

Pedro,

Não fiz teste ainda. Voce já ordenou assim?

SELECT TotalScore, TotalGrade, COUNT(TotalGrade) AS count 
FROM game WHERE TotalGrade <= -2 
GROUP BY TotalGrade
ORDER BY TotalGrade ASC, TotalScore DESC

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Pedro --
Pedro,

Não fiz teste ainda. Voce já ordenou assim?

SELECT TotalScore, TotalGrade, COUNT(TotalGrade) AS count 
FROM game WHERE TotalGrade <= -2 
GROUP BY TotalGrade
ORDER BY TotalGrade ASC, TotalScore DESC

Antes de mais nada, obrigado,

Deu certo em todos os níves, menos no segundo nível em que ele continua mostrando o jogador que tem mais pontos desse nível...

Bom, pra resolver isso, eu teria que selecionar o 5º valor da tabela (que equivale ao 5º colocado do ranking e último colocado desse nível que não deu certo...).

O TotalGrade que não deu certo é TotalGrade = -3 (esse é o nível), e eu precisaria deixar a mostra nesse nível o TotalRank = 5 e ele está me mostrando o TotalRank = 2, de resto, nos outros níveis, eles está mostrando o último colocado de cada nível.

Você sabe alguma maneira para solucionar isso?

Link para o comentário
Compartilhar em outros sites

  • 0

Pedro,

1. Este atributo TotalGrade é numérico?

2. Se não é tem algum espaço ou caracter indevido dentro do campo que pode estar causando este tipo de transtorno?

3. Se é numérico, por que você usa número negativo?

Quanto a TotalRank

4. é numérico?

5. Igual a pergunta 2

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Pedro --
Pedro,

1. Este atributo TotalGrade é numérico?

2. Se não é tem algum espaço ou caracter indevido dentro do campo que pode estar causando este tipo de transtorno?

3. Se é numérico, por que você usa número negativo?

Quanto a TotalRank

4. é numérico?

5. Igual a pergunta 2

TotalGrade é o nível, os níveis variam de 20 à -5.

Há alguns números dos níveis que são negativos porque foram deifinidis assim no jogo, não posso trocar os números dos níveis porque senão os níveis dentro do jogo não serão compatíveis.

Tanto o TotalGrade quanto o TotalRank são númericos, o que eu fiz no TotalGrade, foi relacionar a imagem do nível com seu número no TotalGrade.

Link para o comentário
Compartilhar em outros sites

  • 0

Pedro,

Observe o post #5deste tópico.

No select que enviei falamos dos atributos TotalScore, TotalGrade e do atributo calculado count.

Não falamos do atributo TotalRank. Quem é este atributo?

Só agora percebi isto.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Pedro --
Pedro,

Observe o post #5deste tópico.

No select que enviei falamos dos atributos TotalScore, TotalGrade e do atributo calculado count.

Não falamos do atributo TotalRank. Quem é este atributo?

Só agora percebi isto.

Eu tenho vários rankings no meu site, ranking geral, por país e etc...

Nesse caso, quero mostrar a pontuação necessária para atingir cada nível, para isso devo mostrar a pontuação do último colocado de cada nível, mas porque isso? Porque não são todos os níveis que são definidos com pontuações fixas, os níveis são cálculados de acordo com o número de pessoas registradas, assim o número de pontos para atingir um certo nível aumenta de acordo com o número de jogadores...

Então o que eu quero fazer é uma Tabela de Nível mostrando a pontuação necessária para cada um, para isso tenho que mostrar a pontuação do último colocado de cada nível concorda?

EX: Na foto que te passei tenho 3 níveis (claro que há mais níveis mas isso é apenas um exemplo):

Nível 1 -> Dragão Azul

Nível 2 -> Dragão vermelho

Nível 3 -> Dragão de Prata

O último colocado o nível Dragão Azul tem 1000 pontos, então na tabela devo mostrar a pontuação do último colocando (esse seria a pontuação mínima para evoluir para Dragão Azul), até aqui está tudo certo, seu código resolveu 99% do meu problema, testei com mais níveis.

Mas no nível 2 (Dragão Vermelho), ele está mostrando a pontuação do primeiro colocado do nível (no caso, o primeiro colocado do Nível 2 tem 1021 pontos e o último colocado tem 1013 pontos), é aew que está o erro percebe?

No nível 3 tem apenas 1 pessoa, portanto, nesse nível não há qualquer tipo de problema...

Eu tenho 3 tabelas relacionadas ao ranking que eu posso usar para organizar a minha página de Tabela de Níveis:

TotalGrade (númerica, define o Nível do jogador (Dragão Azul, vermelho e etc).

TotalScore (númerica, define a pontuação do jogador).

TotalRank (númerica, define o Rank do jogador (1, 2, 3)

Bom é isso, se você precisar que eu especifique mais o meu problema, é só falar ;D

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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...