Ir para conteúdo

Arquivado

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

Hamon

Sessoes e passar variavel por url

Recommended Posts

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

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

×

Informação importante

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