Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Estou tentando gerar um relatório em pdf com a classe fpdf, porém verifiquei que quando chamo o comando mysql_num_rows(), para obter o nº de registros da consulta, ele dá o erro:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/htdocs/html/Desenvolvimento_Anderson/papeleira_desenvolvimento/emitirRelatorio.php on line 98
mais como pode não ser um atributo válido, já que testei diretamente no banco a query e funcionou.
e depois aparece:
FPDF error: Some data has already been output, can't send PDF file
Acredito que a causa desta segunda menssagem seja a saída na tela do primeiro erro, pois desta forma evitou a saída do pdf normal.
O código é o seguinte:
<?
ini_set("default_charset","UTF-8");
require_once("fpdf/fpdf.php");
define('FPDF_FONTPATH','fpdf/font/');
//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";
$resultado=mysql_query($query);
//$num=mysql_num_rows($resultado);
//INICIO DO CABEÇALHO
$pdf= new FPDF("L","cm","A4");
$pdf->Open();
$pdf->AddPage();
$pdf->SetTitle("RELATÓRIO DE PAPELEIRAS");
$pdf->SetSubject("RELATÓRIO DE PAPELEIRAS");
$pdf->SetFont('Arial','B',30);
$pdf->Image('img/logoclin.jpg',0.25,0.25,'',3);
$pdf->Setx(2);
$pdf->Cell(0,1,'LISTAGEM DE PAPELEIRAS',0,1,'C');
$pdf->SetXY(20,2.2);
$pdf->SetFont('Arial','',10);
$pdf->Cell(0,0,'DATA DE GERAÇÃO:',0,1,'L');
$pdf->Ln(0.4);
$pdf->SetX(20);
$pdf->Cell(0,0,'GERADO POR:',0,1,'L');
//FIM DO CABEÇALHO
$pdf->Ln(1.2);
$pdf->SetFont('Arial','B',14);
$pdf-> SetX(0.9);
$pdf->Cell(2,1,'Tipo',1,0,'C');
$pdf->Cell(2,1,'COR',1,0,'C');
$pdf->Cell(4,1,'BAIRRO',1,0,'C');
$pdf->Cell(6,1,'RUAS/LOCALIZAÇÃO',1,0,'C');
$pdf->Cell(12,1,'REFERENCIA',1,0,'C');
$pdf->Cell(2,1,'DATA',1,0,'C');
//$pdf->MultiCell(0,1);
$pdf->Ln(1);
$pdf->SetFont('Arial','',10);
/*
while(mysql_fetch_row($resultado))
{*/
$pdf-> SetX(0.9);
$pdf->Cell(2,1,'123456',1,0,'C');
$pdf->Cell(2,1,'123456',1,0,'C');
$pdf->Cell(4,1,'12345678901234567',1,0,'C');
$pdf->Cell(6,1,'123456789012345678901234567890',1,0,'C');
$pdf->Cell(12,1,'123456789012345678901234567890123456789012345678901234567890',1,0,'C');
$pdf->Cell(2,1,'1234567890',1,0,'C');
$pdf->Output("relatorio","I");
?>
Tem alguns comentários pois estou tentando a todo custo fazer isso funfar.
Se você descomentar a função mysql_num_rows antes do inicio do cabeçalho vai ver que vai dar o erro.
Não entendo o pq, se alguém tiver alguma idéia por favor me diga.
Abraços.
Carregando comentários...