Jump to content
Sign in to follow this  
rjsma

[RESOLVIDO]Ordenar registos

Recommended Posts

rjsma

Boas,

Precisava da vossa ajuda para uma coisa.Quero ordenar os dados listados numa tabela por ordem alfabetica, e pelo o nr. de comentarios, etc...O meu problema e que ele nao ordena os registo como deve ser.Por exemplo

Nome                    Nr. de comentarios

-------------------------------------------------

Azevedo                          100

Manel                                500

Maria                                300

ordenação mal efectuada

Nome                    Nr. de comentarios

-------------------------------------------------

Azevedo                          500

Manel                              300

Maria                                100

Ao ordenar pelo o nome ou pelo nr. de comentarios ele so ordena os dados daquele campo e não acompanha os restantes campos daquele registo.

Vou colocar a estrutura da minha ordenação.



$ordem = $_GET['ordem'];

        if($ordem==1){
$sql = mysql_query("Select * from favoritos WHERE privado_comunidade='1' order by nome asc LIMIT $inicio,$quantidade");
}
if($ordem==2){
 $sql = mysql_query("Select * from favoritos WHERE privado_comunidade='1' order by categoria asc LIMIT $inicio,$quantidade");
}


while($urlpriva=mysql_fetch_array($sql)){
  echo "
  <tr>
    <td align='center'>" . $urlpriva['utilizador'] . "</td>

	echo "
	<td align='center'> ";

	$contacoment="select count(id) from comentarios where utilizador='" . $urlpriva['utilizador'] . "'";
	$finalcoment = mysql_query($contacoment, $ligacao);

	$resultacoment = mysql_fetch_row($finalcoment);

	echo $resultacoment[0];

	echo "
  </td></tr>";

}

echo "</table>";

O meu problema deve estar nas query na parte do order by.

Cumprimentos

Share this post


Link to post
Share on other sites
Lfscoutinho

Boas,

Em nenhuma das queries estás a ordenar pelo número de comentários...

Share this post


Link to post
Share on other sites
rjsma

Aqui está as queries correctas. Na ordem dois a minha intencao e ordenar os registos do utilizador com maior numero de cometarios para o user que tem menos.


if($ordem==1){
$sql = mysql_query("SELECT * FROM  utilizadores ORDER BY  utilizador ASC  LIMIT $inicio,$quantidade");
}

if($ordem==2){
 $sql = mysql_query("Select count(id_user) from favoritos WHERE privado_comunidade='1'  order by count(id_user) asc LIMIT $inicio,$quantidade");
}

Share this post


Link to post
Share on other sites
Lfscoutinho

Boas,

Actualmente está a ordenar, mas de ordem inversa é isso?

Se é isso, basta mudares "asc" para "desc".

Nota: "asc" = ascendente; "desc" = descendente

Share this post


Link to post
Share on other sites
rjsma

Não é isso Lfscoutinho, o problema e que ele não ordena. Talves não seja possivel fazer order by count(id_user).

Share this post


Link to post
Share on other sites
Lfscoutinho

Boas,

Ah, desculpa. Não, não podes fazer isso. Podes é fazer por exemplo "SELECT count(id_user) as i" e depois "ORDER BY i".

Share this post


Link to post
Share on other sites
KTachyon

Mas estás a fazer um select ordenado para depois fazeres uma query por cada utilizador? Porque só precisas de fazer uma query para obteres todos os utilizadores com a contagem de comentários...


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.