Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom, meu problema é o seguinte.
Quero gerar um relatório com base numa consulta.
Eu tenho uma página com um formulário de consulta e que mostra o dados da consulta, e nesta mesma página um link que aponta para uma página de emissão se relatório, este link passa as variáveis necessárias por GET, para a página de emissão de relatório montar a query de consulta.
mais ou menos assim...
//este é o link
<a href="emitirRelatorio.php?tipopapeleira=<? print($tipopapeleira);?> & cor=<? print($cor);?> & bairro=<? print($bairro); ?> & localizacao=<? print($localizacao);?> & referencia=<? print($referencia); ?> & instdatainicio=<? print($instdatainicio); ?> & instdatafim=<? print($instdatafim); ?>"><img title="Emitir Relatório" src="icones/emitirRelatorio.png" border="0"></a>
//e este é o código da emissão de relatório, só que eu preciso fazer uma verificação para saber se as variáveis estão vazias ou não, pois a query é montada com base nisto.
//função para converter data do formato brasileiro para o americano
function convertedatag($data)
{
$data2=explode("/",$data);
$data='\''.$data2[2].'-'.$data2[1].'-'.$data2[0].'\'';
return $data;
}
$tipopapeleira=@$_GET['tipopapeleira'];
$cor=@$_GET['cor'];
$bairro=@$_GET['bairro'];
$localizacao=@$_GET['localizacao'];
$referencia=@$_GET['referencia'];
$instdatainicio=@$_GET['instdatainicio'];
$instdatafim=@$_GET['instdatafim'];
$query="SELECT papeleira.id, papeleira.tipo, papeleira.cor, bairros.bairro, localizacao.nome, papeleira.referencia, papeleira.data_instalacao FROM papeleira Left Join localizacao ON papeleira.cod_localizacao = localizacao.id Left Join bairros ON localizacao.cod_bairro = bairros.id where papeleira.flagdel is null";
if(!empty($tipopapeleira)||!empty($cor)||!empty($bairro)||!empty($localizacao)||!empty($referencia)||!empty($instdatainicio)||!empty($instdatafim))
{
$query.=" and";
if($tipopapeleira!="")
{
$query.=" papeleira.tipo='$tipopapeleira'";
if(($cor!="")||($bairro!="")||($localizacao!="")||($referencia!="")||($instdatainicio!="")||($instdatafim!=""))
{
$query.=" and";
}
}
if($cor!="")
{
$query.=" papeleira.cor='$cor'";
if(($bairro!="")||($localizacao!="")||($referencia!="")||($instdatainicio!="")||($instdatafim!=""))
{
$query.=" and";
}
}
if($bairro!="")
{
$query.=" bairros.bairro='$bairro'";
if(($localizacao!="")||($referencia!="")||($instdatainicio!="")||($instdatafim!=""))
{
$query.=" and";
}
}
if($localizacao!="")
{
$query.=" localizacao.nome like '%$localizacao%'";
if(($referencia!="")||($instdatainicio!="")||($instdatafim!=""))
{
$query.=" and";
}
}
if($referencia!="")
{
$query.=" papeleira.referencia like '%$referencia%'";
if(($instdatainicio!="")||($instdatafim!=""))
{
$query.=" and";
}
}
if($instdatainicio!="")
{
$instdatainicio=convertedatag($instdatainicio);
if($instdatafim!="")
{
$instdatafim=convertedatag($instdatafim);
$query.=" papeleira.data_instalacao BETWEEN $instdatainicio AND $instdatafim";
}
else
{
$query.=" papeleira.data_instalacao > $instdatainicio";
}
}
else
{
if($instdatafim!="")
{
$instdatafim=convertedatag($instdatafim);
$query.=" papeleira.data_instalacao < $instdatafim";
}
}
}
$query.=" order by bairros.bairro";
print($query);
Esqueci de passar o mais importante, qual é o problema?
No primeiro if quando ele verifica se as variáveis são vazias ou não, ele dá problema, no caso das variáveis enviadas estarem vazia.
É como se quando eu recebesse as variáveis, elas tivessem um espaço, em vez de estarem vazias, mais com a última variável isso não acontece, ela fica vazia.
Já olhei várias vezes este código e não consegui entender o que causa isso.
Obrigado.
Carregando comentários...