Jump to content
AnthonyKamers

[Resolvido] IF não funcionando ao dar query no POST

Recommended Posts

Olá galera. 

 

Tenho um form e dou POST normalmente e considerando os dados faz uma query diferente para cada caso.

 

O problema é que não está identificando a query dentro do IF do Isset($_POST).

 

antes do <head>

if(isset($_POST['envia'])){

		$dataDe = $_POST['dataDe'];
		$dataAte = $_POST['dataAte'];
		
		$tipoData = $_POST['tipoData']; //dataVenda / dataPagamento
		$status = $_POST['status']; //Pago / Em Andamento
		$tipoReceber = $_POST['tipoReceber']; //Online / Presencial
		$cliente = $_POST['cliente'];
		
		/* Por Data de Venda */
		if($tipoData == "dataVenda" && $status = "" && $tipoReceber == "" && $cliente == ""){
			$sql2 = mysqli_query($con, "SELECT * FROM contasreceber WHERE dataVenda between '$dataDe' AND '$dataAte'") or die(mysqli_error($con));
		} 
		
		elseif($tipoData == "dataVenda" && $status != "" && $tipoReceber == "" && $cliente == ""){
			$sql2 = mysqli_query($con, "SELECT * FROM contasreceber WHERE dataVenda between '$dataDe' AND '$dataAte' && status = '$status'") or die(mysqli_error($con));
		}
}

 

no <body>

while($ln2 = mysqli_fetch_assoc($sql2)){

$dados = $ln2['dados'];
...

}

 

Fiz isso em outra página com apenas uma condição e deu certo, mas com essas condições está dando erro.

 

Erro: Undefined variable: sql2 

 

Obrigado desde já.

Share this post


Link to post
Share on other sites

Pelo que entendi, e arrumando um pouco a logica, ficaria assim:

if ($status == "" ) {
    $sql2 = mysqli_query($con, 
      "SELECT * 
       FROM contasreceber 
       WHERE dataVenda between '$dataDe' AND '$dataAte'") or die(mysqli_error($con)
    );
} else {
    $sql2 = mysqli_query($con, 
      "SELECT * 
       FROM contasreceber 
       WHERE dataVenda between '$dataDe' AND '$dataAte' 
       AND status = '$status'") or die(mysqli_error($con));
}

A validação para verificar se os campos foram ou não preenchidos, entre outras validações, o ideal é você fazer antes de chegar no IF

Share this post


Link to post
Share on other sites

Valeu pela resposta.

 

Mas eu preciso checar mais condições, só coloque duas, mas tenho mais, pois checo uma por uma:

 

Dados Completos:

/* Por Data de Venda */
		if($tipoData == "dataVenda" && $status = "" && $tipoReceber == "" && $cliente == ""){
			$sql2 = mysqli_query($con, "SELECT * FROM contasreceber WHERE dataVenda between '$dataDe' AND '$dataAte'") or die(mysqli_error($con));
		} 
		
		elseif($tipoData == "dataVenda" && $status != "" && $tipoReceber == "" && $cliente == ""){
			$sql2 = mysqli_query($con, "SELECT * FROM contasreceber WHERE dataVenda between '$dataDe' AND '$dataAte' && status = '$status'") or die(mysqli_error($con));
		}
		
		elseif($tipoData == "dataVenda" && $status != "" && $tipoReceber != "" && $cliente == ""){
			$sql2 = mysqli_query($con, "SELECT * FROM contasreceber WHERE dataVenda between '$dataDe' AND '$dataAte' && status = '$status' && tipoReceber = '$tipoReceber'") or die(mysqli_error($con));
		}
		
		elseif($tipoData == "dataVenda" && $status != "" && $tipoReceber != "" && $cliente != ""){
			
			$qSubst = substr($cliente, -1); // c / u
			$idNormal = str_replace($qSubst, "", $cliente);
			
				$sql2 = mysqli_query($con, "SELECT * FROM contasreceber WHERE dataVenda between '$dataDe' AND '$dataAte' && status = '$status' && tipoReceber = '$tipoReceber' && idCliente = '$idNormal'") or die(mysqli_error($con));
		}
		
		elseif($tipoData == "dataVenda" && $status != "" && $tipoReceber == "" && $cliente != ""){
				$qSubst = substr($cliente, -1); // c / u
				$idNormal = str_replace($qSubst, "", $cliente);
			
				$sql2 = mysqli_query($con, "SELECT * FROM contasreceber WHERE dataVenda between '$dataDe' AND '$dataAte' && status = '$status' && idCliente = '$idNormal'") or die(mysqli_error($con));
		}
		
		
		
		
		/* por Data de Pagamento */
		
		elseif($tipoData == "dataPagamento" && $status = "" && $tipoReceber == "" && $cliente == ""){
			$sql2 = mysqli_query($con, "SELECT * FROM contasreceber WHERE dataPagamento between '$dataDe' AND '$dataAte'") or die(mysqli_error($con));
		} 
		
		elseif($tipoData == "dataPagamento" && $status != "" && $tipoReceber == "" && $cliente == ""){
			$sql2 = mysqli_query($con, "SELECT * FROM contasreceber WHERE dataPagamento between '$dataDe' AND '$dataAte' && status = '$status'") or die(mysqli_error($con));
		}
		
		elseif($tipoData == "dataPagamento" && $status != "" && $tipoReceber != "" && $cliente == ""){
			$sql2 = mysqli_query($con, "SELECT * FROM contasreceber WHERE dataPagamento between '$dataDe' AND '$dataAte' && status = '$status' && tipoReceber = '$tipoReceber'") or die(mysqli_error($con));
		}
		
		elseif($tipoData == "dataPagamento" && $status != "" && $tipoReceber != "" && $cliente != ""){
			
			$qSubst = substr($cliente, -1); // c / u
			$idNormal = str_replace($qSubst, "", $cliente);
			
				$sql2 = mysqli_query($con, "SELECT * FROM contasreceber WHERE dataPagamento between '$dataDe' AND '$dataAte' && status = '$status' && tipoReceber = '$tipoReceber' && idCliente = '$idNormal'") or die(mysqli_error($con));
		}
		
		elseif($tipoData == "dataPagamento" && $status != "" && $tipoReceber == "" && $cliente != ""){
				$qSubst = substr($cliente, -1); // c / u
				$idNormal = str_replace($qSubst, "", $cliente);
			
				$sql2 = mysqli_query($con, "SELECT * FROM contasreceber WHERE dataPagamento between '$dataDe' AND '$dataAte' && status = '$status' && idCliente = '$idNormal'") or die(mysqli_error($con));
		}

 

Share this post


Link to post
Share on other sites

Consegui!!!

Segue o código atualizado:

$sql2 = "SELECT * FROM contasreceber";
		
		
		/* Por Data de Venda */
		if($tipoData == "dataVenda" && $status = "" && $tipoReceber == "" && $cliente == ""){
			
			$sql2 .= " WHERE dataVenda between '$dataDe' AND '$dataAte' ORDER BY dataVenda ASC";
		}
		
		elseif($tipoData == "dataVenda" && $status != "" && $tipoReceber == "" && $cliente == ""){
			
			$sql2 .= " WHERE dataVenda between '$dataDe' AND '$dataAte' && status = '$status' ORDER BY dataVenda ASC";
		}

$qr2 = mysqli_query($con, $sql2) or die(mysqli_error($con));

 

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

  • Similar Content

    • By peterstefan
      Boa tarde, quero fazer anúncios em um projeto e quero mostrar dentro de um foreach, mais quero mostrar a cada 5 blocos e depois mostro o anuncio do google.. isso tem algum novo para que eu possa pesquisar?
    • By violin101
      Caros amigos.
       
      saudações...
       
      Por favor PRIMEIRAMENTE peço desculpa em recorrer ao auxílios dos amigos, mas sou novato em CODEIGNITER.
       
      Através de muita Leitura e pesquisa sobre o tema, tenho conseguido desenvolver o que gostaria de executar.
       
      Me deparei com o seguinte problema que não estou conseguindo executar com êxito.
       
      Preciso criar uma FUNÇÃO onde o Sistema após o USUÁRIO efetuar o LOGIN possa realizar uma VALIDAÇÃO de Data e Hora.
      Por exemplo:
       
      Na base de dados tenho campos distintos como:
        `dataInicio` DATE NOT NULL ,
        `horaInicio` TIME NOT NULL ,
        `dataFim` DATE NOT NULL ,
        `horaFim` TIME NOT NULL ,
       
      Pergunta:
      como faço uma função para que o sistema possa comparar e calcular o PRAZO de VENCIMENTO com a DATA e HORA atual, ou seja:
      prazo para encerrar
      dataFim: 19/04/2019
      horaFim: 12:00
      ---------------------------------------
      vencimento
      dataAtual: 19/04/2019
      horaAtual: 12:01
      ==========================
       
      Se a Data/Hora já venceu o Sistema muda o STATUS para 2 (prazo encerrado).
       
      Grato,
       
      Cesar
       
       
       
       
       
       
    • By emersonbrs
      string(77) "[ 1, { "mensagem": "Recarga", "pin": "", "nsu": 1096 } ]" tenho esse array como eu faço para pegar mensagem com json_decode, exemplo se eu fizer assim
      <?php $array = file_get_contents( 'http://www.json-generator.com/api/json/get/bTLlkwcgOa?indent=2' ) ; $obj = json_decode($array); echo $obj->1->mensagem; ?> dessa forma da erro
       
       
      syntax error, unexpected '1' (T_LNUMBER), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in
       
      como resolver ?
    • By guzulino
      Eu tenho uma dúvida meio tosca, mas as páginas que eu estou colocando no site não estão carregando, quando acesso o site aparece uma página padrão de domínio reservado para um cliente HostGator, mas quando vou no cPanel fazer upload dos arquivos, eles não são carregados no site, tentei colocar na pasta "public_html" com o nome de index, mas mesmo assim ela não é carregada na página principal do site. Gostaria de saber qual a pasta em que devo colocar os arquivo das páginas principais para serem carregados. Eu já trabalhei com hospedagem na Locaweb, mas quis testar outra hospedagem para ver como funciona, mas até agora não deu muito certo, adquiri o domínio na semana passada então ele já deveria funcionar teoricamente.
    • By Anderson Ronilson Xavier
      Olá a todos gostaria da ajuda dos colegas estou em um projeto de site landing page  usando o plugin construtor de sites chamado themify ultra e não estou conseguindo uma galeria de imagens igual ao cliente está me pedindo que responsiva e com um menu que tenha as opções por exemplo "todas maçã banana laranja " se eu clicar em maçã a galeria ocultaria as bananas e Laranja e se eu clicar em todas e voltaria a apresentar todas as frutas ... Desculpa o jeito de explicar ... Mas galeria não estou conseguindo achar nada que me ajude a opção do themify ultra foi do próprio cliente que já tinha e acabei topando por fazer usando ele mesmo mas no site do themify não achei nenhum pluguin interessante a galeria deles é a padrão do WordPress será que teria como eu usar alguma outra os colegas tem alguma sugestão? 
       Vou deixar um site que o cliente deixou de modelo de como ele gostaria de que dele ficasse
       
      www.levelmont.com.br
       
      Grato pelo ajuda dos colegas.
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.