【问题标题】:PHP FPDF ForEach loopPHP FPDF ForEach 循环
【发布时间】:2023-09-16 18:04:01
【问题描述】:

我想要实现的目标是运行一个 mysql 查询,将输出放入 foreach,然后使用出色的 FPDF 库将所有​​结果转储到一个 pdf 文档中。然而,只有最后一个结果记录才会进入 pdf 库。 这是mysql查询:

 $sql1 = "SELECT 
 mytable.AddressLine1,
 mytable.OrgID
 FROM
 mytable";
 $results = $db->query($sql1);

这是我的 PHP:

foreach ($results as $all_data) {
$border = 0;
$cardWidth = 1;
$cardHeight = 1;
require_once('fpdf/fpdf.php');
require_once('fpdf/fpdi.php');
$pdf = new FPDI('P','in','Letter');
$pdf->setSourceFile(realpath(ROOT_DIR . 'view' . URL_PATH . 'snTemplate.pdf'));
$pdf->AddPage();
$template = $pdf->importPage(1);
$pdf->useTemplate($template);
$pageNumber = 1;
$pdf->SetFont('Arial', '', 6);
$pdf->SetXY(0, 9.8); 
$pdf->MultiCell(8.5, .2, 'Page ' . $pageNumber, $border,'C');
$pdf->SetXY(0, 9.9);
$pdf->MultiCell(8.5, .2,' Report Form ', $border, 'C');
$pdf->SetXY(0, 10);
$pdf->MultiCell(8.5, .2,
$all_data['AddressLine1'] . ' - ' . $all_data['OrgID'], $border, 'C');
$pdf->Output('Name' . 'sanctionReport' . '.pdf','I');
}

再次在表格中有四个结果,但只有最后一个记录集输出到 PDF,我希望所有结果都出现在各自的页面上,都在同一个报告中,真的不想有多个下载框在用户屏幕上......他们往往会感到害怕!

【问题讨论】:

    标签: php foreach fpdf


    【解决方案1】:

    在每次迭代中,您都重新创建了 pdf。将 $pdf = new FPDI(..) 移到 for 循环之前。并在 for 循环之后移动 pdf->Output(输出根据您提供的数据生成 pdf)。

    【讨论】:

    • @blejzz - 做到了。感谢您为我指明正确的方向!