Ir para conteúdo

POWERED BY:

Arquivado

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

DouglasP

[Resolvido] Posição no sql

Recommended Posts

Boa tarde,

tenho um php no qual quero que mostre posição da conta na tabela.

no caso e um painel no qual em uma seção ta escrito Ranking: ai deveria mostrar a posição que sua conta se encontra.

tentei fazer aqui usando a mesma logica de exibir varias porem não consegui.

 

Alguem me da uma luz?

 

gratol

 

OBS: o banco de dados é SQL Server.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para fazer um ranking normal exibindo todas contas é assim:

 

$query = 'SELECT TOP 15 Name, Class from Character where CtlCode < 1 ORDER BY resets DESC, cLevel DESC';
$result = mssql_query($query);
for($i=0;$i < mssql_num_rows($result);++$i)
{
$row = mssql_fetch_row($result);
$rank = $i+1;

 

sendo $rank a posição,

porem preciso fazer para que exiba apenas a conta do cliente logado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos tentar entender a dúvida...

 

você tem um ranking - funcionando

 

você quer que, ao usuário entrar mostre a posição dele no ranking... é isto?

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

$chave = $_GET['chave']; //chave é o identificador da linha na tabela do ranking (usualmente ID);
$query = mysql_query("SELECT * FROM `tabela` ORDER BY `chave` ASC");
if(mysql_num_rows($query))
{
 $p = 1;
 while($res = mysql_fetch_array($query))
 {
  if($res['chave'] == $chave)
  {
   break();
  }
  $p++;
 }
}
echo "Posição:".$p;

Lembrando que o campo chave é único e usualmente auto_increment da tabela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@ PlebeuSamurai,

testei seu codigo aqui amigo, porem todos ficam com o ranking = 2.

 

@ matias_rezende,

correto amigo, quero que mostre apenas a dele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você colocou na chave???

Se você está fazendo a verificação pelo nome do personagem você precisa alterar este código pra encaixar nessa especificação, se for pelo ID do personagem devia funcionar bem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahhh a cláusula ORDER BY deve ser essa da sua query original... ORDER BY resets DESC, cLevel DESC.

 

Assim o campo chave que eu disse pode ser qualquer coisa desde que seja única também...

Compartilhar este post


Link para o post
Compartilhar em outros sites

$charName = $_GET['charName']; //chave é o identificador da linha na tabela do ranking (usualmente ID);
$query = mysql_query("SELECT * FROM `Character` where CtlCode < 1 ORDER BY resets DESC, cLevel DESC");
if(mysql_num_rows($query))
{
$p = 1;
while($res = mysql_fetch_array($query))
{
  if($res['charName'] == $charName)
  {
   break();
  }
  $p++;
}
}
echo "Posição:".$p;

Eu assumi charName como sendo o nome do personagem na tabela e na variável GET... aí você altera essas variáveis como necessário.

 

Não é na query que especifica o nome do personagem, e sim no loop. Bom, esse código é o que EU usaria... não sei se existe um que faça isso direto pelo MySQL e poupe recursos :)

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.