Ir para conteúdo

POWERED BY:

Arquivado

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

fmda

como retornar a posição de um registro

Recommended Posts

eu tenho um banco que tem 1200 registros, porém estou precisando retornar a posição que determinado usuario está, mas nao pelo id e sim pelo retorno do where

 

Ou seja, preciso fazer uma query que está ordenado pela maior idade e preciso retornar em qual posição ele está.

 

usuario1 -> 20 anos

usuario2 -> 17 anos

usuario3 -> 23 anos

usuario4 -> 9 anos

 

como fazer a query retornar 2 para o usuario3 ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode fazer isso com o while na sua programação.

Qual a linguagem que você está utilizando?

eu estou usando php

 

 

Ola fmda,

 

Veja se isso lhe ajuda:

 

set @posicao = 0;
select @posicao :=@posicao+1, usuario, idade from <suatabela>

Abraços.

 

_ _

Fabiano Abreu

Papo SQL

 

 

 

testei desta forma deu certo quando utiliza order by.

Mas se precisar utilizar where, exemplo abaixo, desta forma sempre retorna 1 e não a posição que ele esta

 

set @posicao = 0;select @posicao :=@posicao+1, usuario, idade from <suatabela> where usuario = 'fmda'

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegeuir entender com while nao, ve se estou fazendo errado

 

 

 

<?php
$rsQuery = $db->Execute("SELECT nome FROM usuario");
$pos = $rsQuery->fields["nome"];
$i = 0;
while(!$rsNews->EOF){
if($pos != $capturaNome){
$i++;
}
$rsQuery->MoveNext();
}
echo $i;
?>

 

este capturaNome é so pra saber quem ta logado na hora, assim consigo pegar o usuario ativo no momento pra saber a posicao dele

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que você fez ai em cima você pode fazer isso:

 

<?php
$rsQuery = $db->Execute("SELECT nome FROM usuario");
$pos = $rsQuery->fields["nome"];
$i = 0;
 
while(!$rsNews->EOF){
   echo $pos." ".$i;
   $i++;
   $rsQuery->MoveNext();
}
?>

 

 

Eu não estou conseguindo entender o que você quer fazer, para que você precisa retorna esse número pela ordem que veio no select ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

é porque precisso demontrar numa pagina a posição que ele se encontra no banco, como se fosse um ranking

hoje ele ta no 12º lugar, mas amanha ele pode ta no 5º lugar.

 

por isso precisso retornar a posicao conforme a query

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eae...então é o que o Roberto falou mesmo porém vou tentar contribuir também, segue trecho de um código que criei para exibir alguns lançamentos, eu joguei em uma table, dae a primeira coluna mostra a ordem daquela linha.

$ctd=1;
while($dados=mysql_fetch_row($exe)){

echo '<tr>
<td>'.$ctd .' </td>
<td>'.$dados[1] .' </td>
<td>'.$dados[10] .' </td>
<td>'.$url.' </td>
<td>'.$dados[5] .' </td>
<td>'.$dados[7] .' </td>
<td>'.$dados[6] .' </td>
<td class="destacaValorReceita">'.$dados[8] .' </td>
<td>'.$dados[11] .' </td>';


$tv += $dados[4];
$tg += $dados[8];
$ctd++;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então é o código que te passei mesmo

sendo que a variável $i é a posição do usuário

 

testei desta forma deu certo quando utiliza order by.

Mas se precisar utilizar where sempre retorna 1 e não a posição que ele esta

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.