Gostaria de saber como pesquisar o segundo e o terceiro maior valor do banco
Tenho um banco de dados com os seguintes campos:
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.
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
Curtidas 0
Melhor post
Luiz Santos
24/10/2017
Vinicius.
Por estar usando o PHP, imagino que seu banco seja o MySQL.
Faça assim.
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
GOSTEI 1
Mais Respostas
Santos
24/10/2017
Fala 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?
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
Vinicius
24/10/2017
Fala 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?
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
Vinicius
24/10/2017
$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
Vinicius
24/10/2017
Vinicius.
Por estar usando o PHP, imagino que seu banco seja o MySQL.
Faça assim.
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
Vinicius
24/10/2017
Vinicius.
Por estar usando o PHP, imagino que seu banco seja o MySQL.
Faça assim.
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