Fórum Gostaria de saber como pesquisar o segundo e o terceiro maior valor do banco #587125
24/10/2017
0
idResultado nomeProva materiaProva emailUsuario acertosUsuario errosUsuario porcentagemDeAcertosUsuario data
E queria fazer um rank pela porcentagem de acertos do usuário. Estou ciente de como selecionar o maior valor (com o select max) mas não sei como selecionar o segundo e o terceiro maior valor para assim fazer um rank.
Vinicius
Curtir tópico
+ 0Post mais votado
24/10/2017
Por estar usando o PHP, imagino que seu banco seja o MySQL.
Faça assim.
SELECT emailUsuario, porcentagemDeAcertosUsuario FROM tabela ORDER BY 2 DESC LIMIT 3
Luiz Santos
Gostei + 1
Mais Posts
24/10/2017
Santos
Se você obtém todos os dados através do PHP, é só você fazer um for e imprimir os três primeiros valores, não?
Gostei + 0
24/10/2017
Vinicius
Se você obtém todos os dados através do PHP, é só você fazer um for e imprimir os três primeiros valores, não?
Mas queria imprimi-los e, ordem decrescente.. do maior para o menor, apenas os 3 maiores no caso
Gostei + 0
24/10/2017
Vinicius
$prova = "prova de matematica";
$res2 = mysql_query("SELECT nomeProva,materiaProva,emailUsuario,porcentagemDeAcertosUsuario,data FROM historico ORDER BY 2 DESC LIMIT 3 where nomeProva = '$prova'");Estou querendo selecionar somente quem tem prova de matematica no nome da prova no caso. Esse código era pra estar funcionando ? Não estou sabendo como imprimir os 3 maiores valores.
Obs: Meu banco é mysql sim.
Gostei + 0
24/10/2017
Vinicius
Por estar usando o PHP, imagino que seu banco seja o MySQL.
Faça assim.
SELECT emailUsuario, porcentagemDeAcertosUsuario FROM tabela ORDER BY 2 DESC LIMIT 3
$prova = "prova de matematica";
$res2 = mysql_query("SELECT nomeProva,materiaProva,emailUsuario,porcentagemDeAcertosUsuario,data FROM historico ORDER BY 2 DESC LIMIT 3 where nomeProva = '$prova'");Estou querendo selecionar somente quem tem prova de matematica no nome da prova no caso. Esse código era pra estar funcionando ? Não estou sabendo como imprimir os 3 maiores valores.
Obs: Meu banco é mysql sim.
Gostei + 0
24/10/2017
Vinicius
Por estar usando o PHP, imagino que seu banco seja o MySQL.
Faça assim.
SELECT emailUsuario, porcentagemDeAcertosUsuario FROM tabela ORDER BY 2 DESC LIMIT 3
$prova = "prova de matematica";
$res2 = mysql_query("SELECT nomeProva,materiaProva,emailUsuario,porcentagemDeAcertosUsuario,data FROM historico ORDER BY 2 DESC LIMIT 3 where nomeProva = '$prova'");Estou querendo selecionar somente quem tem prova de matematica no nome da prova no caso. Esse código era pra estar funcionando ? Não estou sabendo como imprimir os 3 maiores valores.
Obs: Meu banco é mysql sim.
Valeu quem colaborou!Consegui com o seguinte código.
$res2 = mysql_query("SELECT * FROM historico where nomeProva = '$prova' ORDER BY porcentagemDeAcertosUsuario DESC LIMIT 3");
echo '<table style="width:100%">
<tr>
<td><h1>Matéria da prova: </td>
<td><h1>Nome da prova: </td>
<td><h1>Email do usuário: </td>
<td><h1>Porcentagem de acertos: </td>
<td><h1>Data: </td>
</tr></h1>';
while($escrever=mysql_fetch_array($res2)){
echo '<tr>
<td>' . $escrever['nomeProva'] . '</td>
<td>' . $escrever['materiaProva'] . '</td>
<td>' . $escrever['emailUsuario'] . '</td>
<td>' . $escrever["porcentagemDeAcertosUsuario"]. '</td>
<td>' . $escrever["data"]. '</td>
</tr>';
}Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)