Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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á.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));
}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));
Pelo que entendi, e arrumando um pouco a logica, ficaria assim:
} else { $sql2 = mysqli_query($con,