Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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 ?
Você pode fazer isso com o while na sua programação.
Qual a linguagem que você está utilizando?
>
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
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'Acho que você não precisa trazer isso no select, vê se desta forma te ajuda:
$posicao = 0;
while ($row = mysql_fetch_assoc($query)){
$posicao += 1;
}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
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 ?é 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
Então é o código que te passei mesmo
sendo que a variável $i é a posição do usuário
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++;
}>
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
ele vai trazer 1 se tiver só um registro
coloca o código que você esta fazendo ai pra eu poder olhar
Ola fmda,
Veja se isso lhe ajuda:
Abraços._ _
Fabiano Abreu
Papo SQL