Hamon 1 Denunciar post Postado Fevereiro 12, 2016 Pessoal, seguinte oq to tentando fazer é assim, fazer um filtro de pesquisa (ou quase isso) em que a pessoa seleciona em que ordem ela quer tendo essas opçoes: echo "<a href='caixa.php?ordem=DESC'>ID decrescente</a>"."<br/><br/>"; echo "<a href='caixa.php?ordem=DATA_DESC'>Data crescente</a>"."<br/><br/>"; echo "<a href='caixa.php?ordem=DATA_ASC'>Data decrescente</a>"."<br/><br/>"; echo "<a href='caixa.php?ordem=ASC'>ID crescente</a>"."<br/><br/>"; Depois que a pessoa seleciona oq ela quer vem um teste: if(isset($ordem)){ //TESTES PARA ORDENAR POR ID DECRECENTE OU CRESCENTE if($ordem == "DESC"){ $sql1="SELECT * FROM tb_caixa $mes ORDER BY id DESC"; $comando=mysqli_query($con,$sql1); while ($escreve=mysqli_fetch_array($comando)){ $id=$escreve['id']; $data=$escreve['data']; $mes=$escreve['mes']; $vendedor=$escreve['vendedor']; $produto=$escreve['produto']; $quantidade=$escreve['quantidade']; $entrada=$escreve['entrada']; $saida=$escreve['saida']; echo "<tr><td>$id</td><td>$data</td><td>$mes</td><td>$vendedor</td><td>$produto</td><td>$quantidade</td><td>$entrada</td><td>$saida</td></tr>"; } } if($ordem == "ASC"){ $sql1="SELECT * FROM tb_caixa $mes ORDER BY id ASC"; $comando=mysqli_query($con,$sql1); while ($escreve=mysqli_fetch_array($comando)){ $id=$escreve['id']; $data=$escreve['data']; $mes=$escreve['mes']; $vendedor=$escreve['vendedor']; $produto=$escreve['produto']; $quantidade=$escreve['quantidade']; $entrada=$escreve['entrada']; $saida=$escreve['saida']; echo "<tr><td>$id</td><td>$data</td><td>$mes</td><td>$vendedor</td><td>$produto</td><td>$quantidade</td><td>$entrada</td><td>$saida</td></tr>"; } } //TESTA PARA ORDENAR POR ODEM CRECENTE OU DECRESCENTE if($ordem == "DATA_DESC"){ $sql1="SELECT * FROM tb_caixa $mes ORDER BY data DESC"; $comando=mysqli_query($con,$sql1); while ($escreve=mysqli_fetch_array($comando)){ $id=$escreve['id']; $data=$escreve['data']; $mes=$escreve['mes']; $vendedor=$escreve['vendedor']; $produto=$escreve['produto']; $quantidade=$escreve['quantidade']; $entrada=$escreve['entrada']; $saida=$escreve['saida']; echo "<tr><td>$id</td><td>$data</td><td>$mes</td><td>$vendedor</td><td>$produto</td><td>$quantidade</td><td>$entrada</td><td>$saida</td></tr>"; } } if($ordem == "DATA_ASC"){ $sql1="SELECT * FROM tb_caixa $mes ORDER BY data ASC"; $comando=mysqli_query($con,$sql1); while ($escreve=mysqli_fetch_array($comando)){ $id=$escreve['id']; $data=$escreve['data']; $mes=$escreve['mes']; $vendedor=$escreve['vendedor']; $produto=$escreve['produto']; $quantidade=$escreve['quantidade']; $entrada=$escreve['entrada']; $saida=$escreve['saida']; echo "<tr><td>$id</td><td>$data</td><td>$mes</td><td>$vendedor</td><td>$produto</td><td>$quantidade</td><td>$entrada</td><td>$saida</td></tr>"; } } //SE A VARIAVEL ORDEM NAO EXISTIR MOSTRA TODOS OS ITENS }else{ $sql2="SELECT * FROM tb_caixa"; $comando=mysqli_query($con,$sql2); while($escreve=mysqli_fetch_array($comando)){ $id=$escreve['id']; $data=$escreve['data']; $mes=$escreve['mes']; $vendedor=$escreve['vendedor']; $produto=$escreve['produto']; $quantidade=$escreve['quantidade']; $entrada=$escreve['entrada']; $saida=$escreve['saida']; echo "<tr><td>$id</td><td>$data</td><td>$mes</td><td>$vendedor</td><td>$produto</td><td>$quantidade</td><td>$entrada</td><td>$saida</td></tr>"; } } E então caso a pessoa queira visualizar por mês ela também pode, selecionando aqui: <ul id="meses" class="menu"> <li><a href="#" class="btn">Meses</a> <ul> <li><a href="caixa.php?mes=janeiro">Janeiro</a></li> <li><a href="caixa.php?mes=fevereiro">Fevereiro</a></li> <li><a href="caixa.php?mes=marco">Março</a></li> <li><a href="caixa.php?mes=abril">Abril</a></li> <li><a href="caixa.php?mes=maio">Maio</a></li> <li><a href="caixa.php?mes=junho">Junho</a></li> <li><a href="caixa.php?mes=julho">Julho</a></li> <li><a href="caixa.php?mes=agosto">Agosto</a></li> <li><a href="caixa.php?mes=setembro">Setembro</a></li> <li><a href="caixa.php?mes=outubro">Outubro</a></li> <li><a href="caixa.php?mes=novembro">Novembro</a></li> <li><a href="caixa.php?mes=dezembro">Dezembro</a></li> </ul> </li> </ul> O problema tá ai, eu queria que a pessoa pudesse selecionar os dois filtros, por exemplo um de "ID crescente" e "Janeiro". Só que o problema surge ai, eu gravo a SESSÃO do filtro por "ID ou Data", até ai tudo certo, mas caso eu clicar em um dos mêses a váriavel da sessao some, creio eu que pq EU PASSEI UMA NOVA VARIAVEL NA MESMA URL? Pessoal, se puderem me ajudar agredeço, muito! CÓDIGO COMPLETO: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Mostrar Caixa</title> <style> .menu ul { display: none; } /* Hide before plugin loads */ .menu ul.dropit-submenu { background-color: #fff; border: 1px solid #b2b2b2; padding: 6px 0; margin: 3px 0 0 1px; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: 0px 1px 3px rgba(0,0,0,0.15); -moz-box-shadow: 0px 1px 3px rgba(0,0,0,0.15); box-shadow: 0px 1px 3px rgba(0,0,0,0.15); } .menu ul.dropit-submenu a { display: block; font-size: 14px; line-height: 25px; color: #7a868e; padding: 0 18px; } .menu ul.dropit-submenu a:hover { background: #248fc1; color: #fff; text-decoration: none; } table {border:1px black solid;} table td {text-align:center; border:1px black solid;} </style> <link href="jquery/Simple-Flexible-jQuery-Dropdown-Menu-Plugin-Dropit/dropit.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery/jquery-2.2.0.js"></script> <script type="text/javascript" src="jquery/Simple-Flexible-jQuery-Dropdown-Menu-Plugin-Dropit/dropit.js"></script> <script> $(document).ready(function() { $('#meses').dropit(); }); </script> </head> <body> <h1>Mostrar Caixa</h1> <table> <tr> <td>ID</td> <td>Data</td> <td>Mes</td> <td>Vendedor</td> <td>Produto</td> <td>Quantidade</td> <td>Entrada</td> <td>Saida</td> </tr> <ul id="meses" class="menu"> <li><a href="#" class="btn">Meses</a> <ul> <li><a href="caixa.php?mes=janeiro">Janeiro</a></li> <li><a href="caixa.php?mes=fevereiro">Fevereiro</a></li> <li><a href="caixa.php?mes=marco">Março</a></li> <li><a href="caixa.php?mes=abril">Abril</a></li> <li><a href="caixa.php?mes=maio">Maio</a></li> <li><a href="caixa.php?mes=junho">Junho</a></li> <li><a href="caixa.php?mes=julho">Julho</a></li> <li><a href="caixa.php?mes=agosto">Agosto</a></li> <li><a href="caixa.php?mes=setembro">Setembro</a></li> <li><a href="caixa.php?mes=outubro">Outubro</a></li> <li><a href="caixa.php?mes=novembro">Novembro</a></li> <li><a href="caixa.php?mes=dezembro">Dezembro</a></li> </ul> </li> </ul> <?php session_start(); include "conexao.inc"; //OPÇOES DE FILTRO ORDENADO POR echo "<a href='caixa.php?ordem=DESC'>ID decrescente</a>"."<br/><br/>"; echo "<a href='caixa.php?ordem=DATA_DESC'>Data crescente</a>"."<br/><br/>"; echo "<a href='caixa.php?ordem=DATA_ASC'>Data decrescente</a>"."<br/><br/>"; echo "<a href='caixa.php?ordem=ASC'>ID crescente</a>"."<br/><br/>"; //TESTA E ARMAZENA EM SESSION OQ FOI PEGO PELA VÁRIAVEL ORDEM @$ordem=$_GET['ordem']; $_SESSION['ordem']=$ordem; //ARMAZEA EM SESSION A VARIAVEL MES @$mes=$_GET['mes']; $_SESSION['mes']=$mes; //VE SE A VARIAVEL ORDEM FOI CLICADA OU NAO if(isset($ordem)){ //TESTES PARA ORDENAR POR ID DECRECENTE OU CRESCENTE if($ordem == "DESC"){ $sql1="SELECT * FROM tb_caixa $mes ORDER BY id DESC"; $comando=mysqli_query($con,$sql1); while ($escreve=mysqli_fetch_array($comando)){ $id=$escreve['id']; $data=$escreve['data']; $mes=$escreve['mes']; $vendedor=$escreve['vendedor']; $produto=$escreve['produto']; $quantidade=$escreve['quantidade']; $entrada=$escreve['entrada']; $saida=$escreve['saida']; echo "<tr><td>$id</td><td>$data</td><td>$mes</td><td>$vendedor</td><td>$produto</td><td>$quantidade</td><td>$entrada</td><td>$saida</td></tr>"; } } if($ordem == "ASC"){ $sql1="SELECT * FROM tb_caixa $mes ORDER BY id ASC"; $comando=mysqli_query($con,$sql1); while ($escreve=mysqli_fetch_array($comando)){ $id=$escreve['id']; $data=$escreve['data']; $mes=$escreve['mes']; $vendedor=$escreve['vendedor']; $produto=$escreve['produto']; $quantidade=$escreve['quantidade']; $entrada=$escreve['entrada']; $saida=$escreve['saida']; echo "<tr><td>$id</td><td>$data</td><td>$mes</td><td>$vendedor</td><td>$produto</td><td>$quantidade</td><td>$entrada</td><td>$saida</td></tr>"; } } //TESTA PARA ORDENAR POR ODEM CRECENTE OU DECRESCENTE if($ordem == "DATA_DESC"){ $sql1="SELECT * FROM tb_caixa $mes ORDER BY data DESC"; $comando=mysqli_query($con,$sql1); while ($escreve=mysqli_fetch_array($comando)){ $id=$escreve['id']; $data=$escreve['data']; $mes=$escreve['mes']; $vendedor=$escreve['vendedor']; $produto=$escreve['produto']; $quantidade=$escreve['quantidade']; $entrada=$escreve['entrada']; $saida=$escreve['saida']; echo "<tr><td>$id</td><td>$data</td><td>$mes</td><td>$vendedor</td><td>$produto</td><td>$quantidade</td><td>$entrada</td><td>$saida</td></tr>"; } } if($ordem == "DATA_ASC"){ $sql1="SELECT * FROM tb_caixa $mes ORDER BY data ASC"; $comando=mysqli_query($con,$sql1); while ($escreve=mysqli_fetch_array($comando)){ $id=$escreve['id']; $data=$escreve['data']; $mes=$escreve['mes']; $vendedor=$escreve['vendedor']; $produto=$escreve['produto']; $quantidade=$escreve['quantidade']; $entrada=$escreve['entrada']; $saida=$escreve['saida']; echo "<tr><td>$id</td><td>$data</td><td>$mes</td><td>$vendedor</td><td>$produto</td><td>$quantidade</td><td>$entrada</td><td>$saida</td></tr>"; } } //SE A VARIAVEL ORDEM NAO EXISTIR MOSTRA TODOS OS ITENS }else{ $sql2="SELECT * FROM tb_caixa"; $comando=mysqli_query($con,$sql2); while($escreve=mysqli_fetch_array($comando)){ $id=$escreve['id']; $data=$escreve['data']; $mes=$escreve['mes']; $vendedor=$escreve['vendedor']; $produto=$escreve['produto']; $quantidade=$escreve['quantidade']; $entrada=$escreve['entrada']; $saida=$escreve['saida']; echo "<tr><td>$id</td><td>$data</td><td>$mes</td><td>$vendedor</td><td>$produto</td><td>$quantidade</td><td>$entrada</td><td>$saida</td></tr>"; } } ?> </table> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Fevereiro 18, 2016 Pelo que vi, você repete várias vezes a mesma consulta, mudando apenas o dado pelo qual a consulta é ordenada. Sugiro que você faça uma única pesquisa, ao invés de repeti-la várias vezes. Não sei se é a maneira mais indicada, mas eu faria da seguinte forma: $ordem = $_GET["ordem"]; $mes = $_GET["mes"]; if($ordem == "DESC"){ // Ordem decrescente $ordenar_por = " id DESC"; } if($ordem == "ADC"){ // Ordem crescente $ordenar_por = " id ASC"; } // Substitui as 02 consultas por apenas 1 consulta: $sql1="SELECT * FROM tb_caixa $mes ORDER BY $ordenar_por"; Em relação ao filtro por mês: if($mes != ""){ $query.= " WHERE campo_da_sua_tabela_contendo_mes = '$mes'"; } // A consulta ficaria assim: $sql1="SELECT * FROM tb_caixa ".$query." ORDER BY $ordenar_por"; Espero ter ajudado. Compartilhar este post Link para o post Compartilhar em outros sites