【问题标题】:MYSQL to PDF is blankMYSQL转PDF为空白
【发布时间】:2016-01-09 13:44:36
【问题描述】:
  <?php
    require_once("connection.php");
    $result = mysql_query("SELECT * FROM personal_details");
    $header = mysql_query("SELECT `COLUMN_NAME` 
    FROM `INFORMATION_SCHEMA`.`COLUMNS` 
    WHERE `TABLE_SCHEMA`='unania' 
    AND `TABLE_NAME`='personal_details'");

    require('fpdf.php');
    $pdf = new FPDF();
    $pdf->AddPage();
    $pdf->SetFont('Arial','B',12);      
    foreach($header as $heading) {
    foreach($heading as $column_heading)
      $pdf->Cell(90,12,$column_heading,1);
    }
    foreach($result as $row) {
    $pdf->SetFont('Arial','',12);   
    $pdf->Ln();
    foreach($row as $column)
      $pdf->Cell(90,12,$column,1);
    }
    $pdf->Output();
    ?>

上面的代码在运行时输出一个空白的PDF文档,有什么问题,是不是我使用的是过程式mysql而不是OOP。不过,我需要尽快找到解决方案。

【问题讨论】:

  • 您是否尝试在 PDF 中放置一个简单的文本行?那会发生什么?也许你的 foreach 循环没有进入。
  • 试过你刚才说的,还是空白。这就是我改变的; $result = "游戏开始"; $header = "查理";
  • 好的。那么就不是mysql的问题了。将测试行留在代码中,然后使用 Shift + F5 刷新浏览器。有时旧页面会被缓存。
  • 还是不行。感谢您的帮助,但如果您之前已经实施过,您能否向我展示您如何做到这一点的示例,我将能够从中找到一些东西。谢谢
  • 我刚刚在谷歌上搜索过,我有一个例子。你在你的网络服务器和本地主机上试过了吗?也许有什么问题。

标签: php mysql pdf


【解决方案1】:

我花时间为您制作了一个 pdo 的小样本。 不知何故,您的错误未显示在您的本地主机系统中。你必须对此进行分析。这是一个适合我的示例:

<?php
require('fpdf.php');

$db = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$colNames = array();

foreach($db->query("SELECT * FROM mytest") as $row2) {
    echo $row2['id'].' '.$row2['name'];
}

$result = $db->query("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='test' AND TABLE_NAME='mytest'");

 foreach($result as $row) {
    $colNames[]  = $row["COLUMN_NAME"];
 }

$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetDisplayMode(real,'default');

$pdf->SetFont('Arial','B',12);      
$pdf->SetTextColor(50,60,100);

$pdf->SetXY(50,20);
$pdf->SetDrawColor(50,60,100);
$pdf->Cell(100,10,'Tabledata MyTest',1,0,'C',0);

$pdf->Ln();
$pdf->Ln();

foreach($colNames as $colName) {
    $pdf->Cell(90,12,$colName,1);
}

$pdf->Ln();

foreach($db->query("SELECT * FROM mytest") as $row) {
   $pdf->Ln();
   foreach($colNames as $colName) {
      $pdf->Cell(90,12,$row[$colName],1);
    } 
}

ob_end_clean();
$pdf->Output();

?>

【讨论】:

  • 感谢您的回答,我马上尝试实施
  • 你成功了吗?
  • 是的,我有,使用 PDO,它通过按预期填充数组工作正常,并且 pdf 创建得很好,我只将您的 PDO 数据库连接应用到我自己的脚本。但是目前还有另一个问题,标题和结果都以重复的形式打印出来。我从代码中解决了标题重复问题,但结果在标题列中重复,例如 id 打印两次等等。我将在下面粘贴新代码。
  • 请不要发布您的代码作为答案。请用代码扩展您的问题
  • 能否也向我们展示一下您生成的 PDF?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-04
  • 2020-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多