Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eduardo e Tamiris

[Resolvido] Ordenar dados em ordem crescente ou decrescente

Recommended Posts

Ola,

 

Eu estou listando as noticias em uma tabela e preciso quando clicar no titulo Data seja ordenado em ordem crescente ou decrescente e vice e versa.

Procurei na net e não achei o conteudo certo que preciso, será que alguem poderia me dar uma ajuda?

 

Grato desde já

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce quer organizar na query???

 

para isso use no final da query:

"ORDER BY coluna ASC" ou "ORDER BY coluna DESC"

se for alguma array use:

sort($array);

abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu quero organizar por query, assim, quando o usuario clica no titulo data ele organiza os dados em ordem crescente por data, mas se clicar novamente ele organize em ordem decrescente.

 

Eu não sei como posso fazer para saber se é para ordenar em crescente ou decrescente, pois o comando sql eu sei, mas como saber se ja esta ordenado em ordem crescente ou decrescente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao kra.... se você tem algum conhecimento de AJAX e jQuery você pode usar o DataTables (plugin do jQuery) para fazer isso!!

 

 

A logica eh simples:

 

Voce tem uma funcao no php que execute a query, nesta funcao você tem um paramentro que eh passado pelo ajax para diferenciar QUAL a ordem que vai ser enviada!

 

EX:

 

voce tem uma tabela com o campo nome, ele esta em ordem crescente (ASC) e quando voce clicar o ajax vai rodar o PHP com o paramentro xxxxxxxxx.php?ordem=desc

 

nisso o php vai saber em qual ordem por!

 

 

eu ainda axo mais facil usar o datatables para fazer isso!!!

 

abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

òo

 

Do lado esquerdo do link coloca uma seta pra cima e do lado direito do link coloca uma seta pra baixo.

AS SETAS SERÂO UM LINK QUE APONTARAO PARA A MESMA PÁGINA, POREM COM PARAMETROS QUE você USARÁ NO SELECT.

 

<a href="mesma_pagina.php?ordem=crescente&campo=data"> <img src="setapracima.png" /> </a>
 Data
<a href="mesma_pagina.php?ordem=decrescente&campo=data"> <img src="setaprabaixo.png" /> </a>

Quando você clicar pra cima, você vai colocar em ordem crescente seu Select ou seja, ASC

entao. vai ficar assim:

 


   if($_GET['ordem] == "crescente")
      $sql = 'select * from tabela order by '.$_GET['campo'].' asc'; # na verdade nem precisa por asc
   elseif($_GET['ordem'] == "decrescente")
      $sql = 'select * from tabela order by '.$_GET['campo'].' desc'; # precisa por desc
   else
      $sql = 'select * from tabela'; # vai entrar aqui da primeira vez que carregar a página.

$exe = mysql_query($sql);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Dee, fiz algumas adaptações e funcionou perfeitamente.

 

Eu utilizei assim:

 

if($_GET['ordem'] == "crescente")

$sql = mysql_query('select * from tb_noticias order by '.$_GET['campo'].' asc'); # na verdade nem precisa por asc

elseif($_GET['ordem'] == "decrescente")

$sql = mysql_query('select * from tb_noticias order by '.$_GET['campo'].' desc'); # precisa por desc

else

$sql = mysql_query("select * from tb_noticias order by data desc LIMIT $inicio, $registros_pagina");

 

e depois comecei a montar meu sql: while ($dados = mysql_fetch_array($sql)) {

 

$id = $dados['id_noticia']; ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Dee, fiz algumas adaptações e funcionou perfeitamente.

 

Eu utilizei assim:

 

if($_GET['ordem'] == "crescente")

$sql = mysql_query('select * from tb_noticias order by '.$_GET['campo'].' asc'); # na verdade nem precisa por asc

elseif($_GET['ordem'] == "decrescente")

$sql = mysql_query('select * from tb_noticias order by '.$_GET['campo'].' desc'); # precisa por desc

else

$sql = mysql_query("select * from tb_noticias order by data desc LIMIT $inicio, $registros_pagina");

 

e depois comecei a montar meu sql: while ($dados = mysql_fetch_array($sql)) {

 

$id = $dados['id_noticia']; ...

 

Não entendi muito bem, sou um pouco leigo no php.

Estou com o seguinte código para impressão das notícias:

 

<?= $data_noticia; ?> </b><br><A href="noticias-descricao.php?id_noticia=<?= $id_noticia;?>" target="_blank" title="<?= $descricao_noticia; ?>"><?= $descricao_noticia; ?>

 

só que as notícias estão sendo visualizadas da primeira cadastrar para a última. ou seja a notícia de séculos atrás está no topo.

como faço para organizar esses itens?

 

obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho mais uma dúvida.

Em relação a ordem das notícias está tudo ok, um outro problema que me veio agora é que o comando:

$query_noticias = "select * from tbl_noticias order by id_noticia desc"; 

desabilita o comando:

$query_noticias = "select * from tbl_noticias where status = '1' limit 5";

Ou seja inves de exibir apenas 5 notícias está exibindo todas, situação em que antes poderia ser feito sem problemas.

Alguém sabe um meio em que eu possa inserir os dois comandos sem que haja conflitos?

 

obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.