Ir para conteúdo

Arquivado

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

Gavaldão

FPDF não roda no meu servidor

Recommended Posts

Bom Dia. criei um script com a classe fpdf.

no meu localhost, funciona direitinho em uma pagina nova ou até em uma popup.

Estou usando conexão mysql.

 

Quando subo para o servidor externo recebo a mensagem que a conexão esta DEPRECATED , que devo usar Mysqli ou PDO.

 

nuca usei Mysqli ou PDO, então estou tentando com Mysqli que achei mais fácil porem acontece o seguinte.

 

fiz um pequeno script para teste.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php
include("php/funcoes.php");
include ("php/config.php");
 $dinit = $_POST["dinicial"];
  $din = trataData($dinit);
  $hin = "00:00:00";
  $fday = ("$din $hin");
  $dfinit = $_POST["dfinal"];
  $fim = trataData($dfinit);
  $hfim = "23:59:00";
  $tday = ("$fim $hfim");

//output results
print '<h3>SELECT Multiple Records as Associative array</h3>';

//Open a new connection to the MySQL server


//MySqli Select Query
$results = $mysqli->query("SELECT coopmat, Subject from escalas WHERE StartTime BETWEEN '$fday' AND '$tday' GROUP by Subject");
print '<table border="1">';
while($row = $results->fetch_assoc()) {
    print '<tr>';
    print '<td>'.$row["coopmat"].'</td>';
    print '<td>'.$row["Subject"].'</td>';
    print '</tr>';
}  
print '</table>';

// Frees the memory associated with a result
$results->free();

// close connection 
$mysqli->close();
?>

Usei esse script para teste sem o PDF.

no servidor localhost, imprime minhas três linhas existentes na tabela.

 

Quando subo para o servidor, só imprime a primeira linha.

 

Podem me dar algumas orientações d como fazer ou qual o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Interessante é que todo o sistema funciona com conexão mysql sem problemas, só a classe fpdf é que informa a DEPRECATED da conexão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Interessante é que todo o sistema funciona com conexão mysql sem problemas, só a classe fpdf é que informa a DEPRECATED da conexão.

Provavelmente seu PHP está escondendo os warnings. O FPDF deve estar ativando novamente a exibição dos warnings. Por isso só aparece nesse trecho. Se você usar error_reporting em E_ALL, verá a mensagem no sistema todo

 

 

Já rodou a query diretamente no banco do servidor? Retorna mais de um resultado?

Você pode usar num_rows para exibir o total de registros retornados pelo SELECT.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O script que postei não esta usando FPDF

essa query usando conexão: mysqli só retorna um resultado. do servidor externo.

em localhost retorna todos.

 

sem usar FPDF

se eu usar conexão: mysql. retorna normal os registros.

 

COM A CLASSE FPDF E CONEXÃO MYSQL TENHO O ERRO

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/servicefenix/www/sigerserv/serv_ger/pdf_relatcoop.php on line 32

 

Warning: mysql_connect(): No such file or directory in /home/servicefenix/www/sigerserv/serv_ger/pdf_relatcoop.php on line 32

Could not connect: No such file or directory

 

 

abaixo o script completo com FPDF.

Só printa o primeiro registro.

Compartilhar este post


Link para o post
Compartilhar em outros sites


<?php

ini_set('display_errors', 'on');

error_reporting(E_ALL | E_STRICT);

define('FPDF_FONTPATH', 'font/');

require('fpdf/fpdf.php');

$pdf= new FPDF("l","mm","A4");

$pdf->Open();

$pdf->AddPage();

include "php/funcoes.php";

$acao = $_POST["acao"];

$sub = $_POST["prestador"];

$dinit = $_POST["dinicial"];

$din = trataData($dinit);

$hin = "00:00:00";

$fday = ("$din $hin");

$dfinit = $_POST["dfinal"];

$fim = trataData($dfinit);

$hfim = "23:59:00";

$tday = ("$fim $hfim");

 

include ("php/config.php");

$res = $mysqli->query("SELECT * from jqcalendar WHERE StartTime BETWEEN '$fday' AND '$tday' GROUP by Subject ");

while($rowe = $res->fetch_array()) {

$coop = $rowe["Subject"];

$mat = $rowe["coopmat"];

 

$pdf->SetFont('Arial','B',12);

// Move to the right

$pdf->Cell(80);

// Title

$pdf->Cell(100,10,"Relatorio Resumo de Coopeados por Periodo = De $dinit ate $dfinit",0,0,'C');

$pdf->Ln(10);

$pdf->Cell(100,10,"Matricula: $mat - Cooperado: $coop",0,0,'L');

// Line break

$pdf->Ln(10);

 

$pdf->SetFont('Arial', 'B', 9);

$pdf->Cell(32, 5, 'data in', 1, 0, 'C');

$pdf->Cell(32, 5, 'data fim', 1, 0, 'C');

$pdf->Cell(85, 5, 'Paciente', 1, 0, 'L');

$pdf->Cell(30, 5, 'Plan.Contr.', 1, 0, 'L');

$pdf->Cell(26, 5, 'Plan.Exect.', 1, 0, 'L');

$pdf->Cell(18, 5, 'Val.Contr.', 1, 0, 'L');

$pdf->Cell(18, 5, 'Val.Real', 1, 0, 'L');

$pdf->Cell(13, 5, 'Valtaxa', 1, 0, 'L');

$pdf->Cell(20, 5, 'Val.Plantao', 1, 0, 'L');

$results = $mysqli->query("SELECT * from escalas WHERE Subject= '$coop' AND StartTime BETWEEN '$fday' AND '$tday' order by startTime") ;

while($row = $results->fetch_object()) {

$pac = $row->cat;

$tin = $row->StartTime;

$Edfim = $row->EndTime;

$paciente = $mysqli->query("SELECT pacnome FROM pacientes WHERE paccod = $pac")->fetch_object()->pacnome;

$cor = $row->Color;

$planexect = $mysqli->query("SELECT nomecor FROM classcores WHERE cor = $cor")->fetch_object()->nomecor;

$Stin = phpData($row->StartTime);

$Edfim = phpData($row->EndTime);

 

$pdf->ln();

$pdf->Cell(32, 5, $Stin, 1, 0, 'L');

$pdf->Cell(32, 5, $Edfim, 1, 0, 'L');

$pdf->Cell(85, 5, $paciente, 1, 0, 'L');

$pdf->Cell(30, 5, $row->contrplan, 1, 0, 'L');

$pdf->Cell(26, 5, $planexect, 1, 0, 'L');

$pdf->Cell(18, 5, $row->valplan, 1, 0, 'R');

$pdf->Cell(18, 5, $row->valreal, 1, 0, 'R');

$pdf->Cell(13, 5, $row->valtaxa, 1, 0, 'R');

$pdf->Cell(20, 5, $row->valplan, 1, 0, 'R');

}

 

$pdf->ln();

$total = $mysqli->query("SELECT SUM(valreal) as 'real', SUM(valtaxa) as 'taxa', SUM(valplan) as 'plan' FROM escalas WHERE Subject='$coop' AND StartTime BETWEEN '$fday' AND '$tday'");

$linha = $total->fetch_assoc();

$taxa = $linha["taxa"];

$real = $linha["real"];

$plan = $linha["plan"];

$pdf->SetFont('Arial', 'B', 10);

$pdf->Cell(32, 5, '', 1, 0, 'C');

$pdf->Cell(32, 5, '', 1, 0, 'C');

$pdf->Cell(85, 5, 'TOTAL DO MES', 1, 0, 'C');

$pdf->Cell(30, 5, '', 1, 0, 'L');

$pdf->Cell(26, 5, '', 1, 0, 'L');

$pdf->Cell(18, 5, '', 1, 0, 'R');

$pdf->Cell(18, 5, $taxa, 1, 0, 'R');

$pdf->Cell(13, 5, $real, 1, 0, 'R');

$pdf->Cell(20, 5, $plan, 1, 0, 'R');

}

 

 

 

 

 

$pdf->Output();

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O script que postei não esta usando FPDF

essa query usando conexão: mysqli só retorna um resultado. do servidor externo.

em localhost retorna todos.

Por isso falei pra rodar a query direto no banco de dados do servidor remoto. Veja quantos a query mostra.

Talvez só haja um registro lá. Por isso só retorna 1.

 

Tanto mysql quanto mysqli se comunicam com o mesmo SGBD. Desde que você se conecte ao mesmo banco, ambos retornarão o mesmo resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo, só retornou um resultado.

na minha tabela tem 3 resultados (3 linhas)

 

quando rodo no localhost.

me apresenta os três resultados.

 

não esta retornando o while da primeira query que agrupa o Subject.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo, só retornou um resultado.

na minha tabela tem 3 resultados (3 linhas)

Se o SELECT direto no banco de dados retornou só um, é por que só há um registro que coincide com as condições do WHERE.

E isso não está ligado com o PHP, nem com as extensões mysqli ou mysqli

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito Bom Beraldo, você estava certo.

Estava selecionando um período e nesse período só havia um mesmo.

A gente passa porcima de coisas fáceis e não vê.

Vou revisar e posto o resultado para fechar.

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok Beraldo o problema era somente a conexão, que o servidor não estava aceitando ser por

 

Mysql_connect, usando a classe FPDF, tive de usar a extensão Mysqli para as conexões.

 

O restante do Script estava correto.

 

Agradeço ai sua experiência e dicas.

Valeu amigão.

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.