Gostaria de saber como pesquisar o segundo e o terceiro maior valor do banco

24/10/2017

0

Tenho um banco de dados com os seguintes campos:

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

Vinicius

Responder

Post mais votado

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

Luiz Santos

Luiz Santos
Responder

Mais Posts

24/10/2017

Santos

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?
Responder

24/10/2017

Vinicius

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?

Mas queria imprimi-los e, ordem decrescente.. do maior para o menor, apenas os 3 maiores no caso
Responder

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.
Responder

24/10/2017

Vinicius

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.
Responder

24/10/2017

Vinicius

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>';

	}
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar