Jump to content


Photo

Ajuda Com Select De Ranking


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

#1 enthroned

enthroned

    eh noizeh!

  • Usuários
  • 257 posts
  • Sexo:Não informado

Posted 18/06/2008, 10:53

bom dia pessoal, estou montando um sisteminha de ranking pra Boliche, e estou com uma duvida como fazer o select...

o que eu quero: fazer o select pra pegar os 10 primeiros no ranking, através da pontuação

problema: podem ter jogadores com a mesma pontuação, e neste caso, poderia aumentar o numero de registros como resultado, mostrando por exemplo 12 ao em vez de 10...

exemplo: se não existe pontos iguais, mostra:
1- nome - pontos 1
2- nome - pontos 2
3- nome - pontos 3
4- nome - pontos 4

exemplo 2: se tiver pontos iguais, mostra:
1 - nome - pontos 1
- nome 2 - pontos 2
2- nome 3 - pontos 3


eu estou fazendo o select assim:

SELECT rank_nome, rank_pontos FROM ranking WHERE MONTH(rank_data) = ".$mes." AND ranking_categoria_id = ".$cat["categoria_id"]." ORDER BY rank_pontos DESC LIMIT 0,10

porem, como podem ver eu limitei em 10 registros....e se tiver gente com pontos iguais, não irá mostrar.... como exemplo, os 9 primeiros tem pontos diferentes, e o 10 e 11 resultado sao iguais, neste select vai me resultar apenas o 10 registro, mas eu queria que tambem pegasse o 11..

como posso alterar meu SQL??

vlw
=]

#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 18/06/2008, 11:03

vc pode controlar isso no php....

dentro do looping de registros vc controla se pontos for igual o numero continua o mesme

e quando o numero for 10 vc da um break
<?php

$squall = new Squall();

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

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

#3 fly2k

fly2k

    Super Veterano

  • Usuários
  • 2262 posts
  • Sexo:Não informado

Posted 18/06/2008, 11:34

É, você vai ter que retirar o LIMIT da sql

Você terá que utilizar um teste:

$contador = 0;
 $valorAnterior = -1;
 while ($row = mysql_fetch_array($query)) {
	 if ($row['valor'] != $valorAnt) {
		 $valorAnt = $row['valor'];
		 $contador++;
		 if ($contador > 10) {
			 break;
		 }
	 }
	 // imprime as informações 
 }

Para aprender mais sobre o break acesse http://manjaphp.blog...ing-eterno.html
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.




1 user(s) are reading this topic

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

IPB Skin By Virteq