Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Ordernar Colunas da tabela ao clicar


marcosfj1

Pergunta

Bom gente seguinte, eu faço uma consulta SQL no meu banco de dados e jogo os dados numa tabela, até aqui tudo normal.

E quando o usuario clicar no nome da coluna ela é ordenada automaticamente, faço isso dessa maneira:

Primeiro defino por GET o ORDER BY

$sql_ORDER = " ORDER BY qtde_itens DESC";
if ($_GET['ordem'])
$sql_ORDER = " ORDER BY ".$_GET['ordem'];
Depois quando faço a consulta do SELECT eu chamo a variavel $sql_ORDER
$sql ="SELECT busco os campos que desejo utilizar                
           FROM tabela X
           $sql_ORDER";
Agora na hora de jogar os dados obtidos na tabela, em cada coluna eu faço da seguinte forma:
<td align="left" ><a href="?g=<?=$_GET['g'] ?>&amp;ordem=codigo"><strong>Codigo</strong></a></td>
<td align="left" ><a href="?g=<?=$_GET['g'] ?>&amp;ordem=nome"><strong>Produto</strong></a></td>
Assim eu passo para a variavel &sql_ORDER um GET pelo nome da coluna que eu quero ordenar, no caso posso ordernar por codigo e nome. Porem eu uma das colunas eu não tenho uma dado trazido diretamente da tabela, e sim um conta feita por mim, onde eu pego a qtde_produto e multiplico pelo valor de cada um, exemplo: Qtde Produto X Valor Unitario = Valor Total 20 3 60 então eu jogo na variavel $valor_total, apos a multiplicaçao, o resultado.....Agora este é o problema!!! A variavel não é uma coluna da tabela então não posso ordenar-la da mesma forma....alguém saberia me ajudar a fazer, com que ao usuario clicar no nome da coluna ela seja ordenada, assim como fiz nos demais???????? O que eu poderia fazer para que esta coluna, criada atravez de uma conta fosse ordenada?
<td colspan="2" align="left" ><strong>Valor Arrecadado com o Produto</strong></td>

Acho q é bem complicada minha duvida né hehe mas quem sabe alguém possa me dar um ideia

Valeu

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Creio que a solução é bem mais simples, uma linha resolve, basta você fazer a conta direto no SQL:

select valor_unitario * $quantidade as TOTAL from produtos ORDER BY TOTAL DESC;

Link para o comentário
Compartilhar em outros sites

  • 0
Creio que a solução é bem mais simples, uma linha resolve, basta você fazer a conta direto no SQL:

select valor_unitario * $quantidade as TOTAL from produtos ORDER BY TOTAL DESC;

Já resolvido a ideia da multiplicaçao dentro do comando SQL foi utilizada.....e a maneira de ordenar não pode ser declarada dentro do sql pois ela é dinamica e varia de acordo com a vontade do usuario

De qualquer forma já ta resolvido

valeu

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...