Ir para conteúdo

POWERED BY:

Arquivado

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

daniel.thyrso

Ordenar dados com MySQL

Recommended Posts

Pessoal estou com um problemao! Estou fazendo um jogo on line, e preciso ordenar os jogadores em uma lista de melhores pontuacoes, tipo 'Top10', acontece que obviamente as pontuações estão todas misturadas no banco de dados (mysql).Então é isso, preciso saber como ordenar as 10 melhores pontuacoes do meu ranking, mesmo ele tendo centenas de jogadores.Alguma idéia???????????Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem você tem que colocar no final da sua query "order by nome_campo desc" para odernar Decrecente =D

 

PHP
sql= mysql_query("select * from tabela order by nome_campo desc limit 10");

 

ok.. ;)

 

editado:

 

Eu arumei a minha query para mostra somente os 10 mais

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem, eu ainda não fiz a query, estava soh idealizando...então, order by pode até funcionar, mas como eu faço para exbir apenas os 10 primeiros (desculpe a ignorancia se for uma duvida crassa)

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem, eu ainda não fiz a query, estava soh idealizando...então, order by pode até funcionar, mas como eu faço para exbir apenas os 10 primeiros (desculpe a ignorancia se for uma duvida crassa)

naum eh uma duvida crassa naum...enfretei o mesmo problema a algumas semanas atras...soh que fazendo um site de fotos... aew jah eh otra hist...bom vamos ao codigo:
//Conecta ao my sql e bláblábláblábláblá$limit = "10"; // quantidade de players a ser mostrada.. no caso 10 por ser Top 10$sql= mysql_query("SELECT * FROM tabela ORDER BY (*1) DESC LIMIT $limit"); // selecionando a tablewhile($linha = mysql_fetch_array($sql)) {echo $linha['(*2)']; //Mostra pontuaçãoecho $linha['(*3)'];  // Mostra nick do jogador}
você tem de mudar onde esta (*x) pelo que está no seu BDbom esperu ter ajudado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então....o código funcionou, só que parcialmente....porque na hora de ordenar, a função só enxerga o primeiro 'caracter', por exemplo 1,3,5,4,2... fica, após ordenados, 5,4,3,2,1.... mas o problema é que entre 100 e 22 ele coloca primeiro o 22!!! porque ele só analisa o primeiro número, nesse caso o dois é maior que um, então 22 fica sendo maior que 100! Qual a maneira de solucionar esse problema?? :huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então ... esse é o código.... espero que sirva.... os valores que deveriam ser listados são 'int' normal.

Valeu!

 

 

//CONECTANDO AO BANCO DE DADOS $conexao = mysql_connect("localhost","root","root");	if (!$conexao)	{	die('Mensagem: <i>Não foi possível conectar ao BD:</i><br> ' . mysql_error());	}	else	{	echo"Mensagem:<i> Conectado com sucesso!</i><br>";	}	$banco = mysql_select_db("simpet", $conexao);	//OBTENDO OS DADOS DO BANCO E EXIBINDO EM ORDEM CRESCENTE AS DEZ MELHORES PONTUAÇÕES	$limit = "10"; // Nessa linha se determina a quantidade de usuários que serão exibdaos -- na nossa aplicação 10	$sql= mysql_query("SELECT * FROM simpet.rank ORDER BY rank_user DESC LIMIT $limit"); // Seleciona a tabela que fornecerá os dados	while($linha = mysql_fetch_array($sql)) {		echo $linha['cod_user']; //Mostra pontuação		echo " - ";		echo $linha['rank_user']; // Mostra nick do jogador		echo "<br>";	}

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.