PHP数组帮助(EZPDF)


Help with PHP array (EZPDF)

我正在尝试使用ezpdf将mysql数据输出为pdf。我已经成功地生成了报告的第一部分,但第二部分有很多列,当然不会跨页生成。下图可能会解释我想做什么。

当前布局示例:


|---HEADER-|---HEADER2--|---HEADER3--|---HEADER 4-|---HEADER5-->

|用户名1|DATAFIELD1|DATAFIELD2|DATAFIELD3|DATAFIELD2|

|用户名2|DATAFIELD1|DATAFIELD2|DATAFIELD3|DATAFIELD3|

|用户名3|DATAFIELD1|DATAFIELD2|DATAFIELD3|DATAFIELD3|


我试图实现的目标示例:


|----HEADER1---|---LEADER2----|

|用户名1|DATAFIELD1|

|---HEADER3---|---HEADER4----|---HEADER5--|

|DATAFIELD2|DATAFIELD3|DATAFIELD4|


|----HEADER1---|---LEADER2----|

|用户名2|DATAFIELD1|

|---HEADER3---|---HEADER4----|---HEADER5--|

|DATAFIELD2|DATAFIELD3|DATAFIELD4|


|----HEADER1---|---LEADER2----|

|用户名3|DATAFIELD1|

|---HEADER3---|---HEADER4----|---HEADER5--|

|DATAFIELD2|DATAFIELD3|DATAFIELD4|


我希望这是有道理的。如果有人能帮忙,我们将不胜感激。

下面是我的测试代码

测试代码

在您发布的示例代码中,您在循环之前使用mysql_fetch_array($Recordset1)调用mysql_fetch _assoc($Recordset 1),因此循环将错过第一个结果。如果你在其他代码中也这样做,那么这就是问题所在。

实际上,如果您不保留旧代码,我建议您使用TCPDF从php生成PDF,它提供了很多功能。例如,将html转换为PDF代码没有任何问题。

在这种情况下,您可以创建html表,然后像本例中那样转换它们

编辑-在TCPDF中,你必须非常小心如何标记表:从你的链接中,我看到你的标记中有一个错误。您试图创建的表应该是这样的:

$tbl = '
<table border="1" cellpadding="2" cellspacing="2">
<thead>
 <tr style="background-color:#FFFF00;color:#0000FF;">
  <td align="center"><b>USERNAME</b></td>
  <td align="center"><b>LASTNAME</b></td>
  <td align="center"><b>FIRSTNAME</b></td>
 </tr>
</thead>
<tbody>
  <tr style="background-color:#FF0000;color:#FFFF00;">
     <td align="left">' .$username. '</td>
     <td></td>
     <td></td>
  </tr>
</tbody>
</table>
';

好的,我修复了错误并使循环正常工作。但出于某种原因,它会切断第一行数据。

    $tbl = '
<table border="1" cellpadding="1" cellspacing="2">
 <tr style="background-color:#666666;color:#FFFFFF;">
  <td align="center"><b>TITLE 1 HERE</b></td>
  <td align="center"><b>TITLE 2 HERE</b></td>
  <td align="center"><b>TITLE 3 HERE</b></td>
 </tr>';
while($row = mysql_fetch_array($Recordset1))
  {
$tbl = $tbl .'  <tr style="background-color:#000066;color:#FFFFFF;">
  <td align="left">Name: '.$row[lastname].', '.$row[firstname].'</td>
 </tr>'
    .'  <tr style="background-color:#CCCCCC;color:#000000;">
  <td align="left">'.ValLesson1.'</td> 
  <td align="left">'.ValLesson2.'</td>
  <td align="left">'.ValLesson3.'</td>
  </tr>'
 .'<tr style="background-color:#FFFFFF;color:#000000;">
 <td align="left">'.$row[most_valuable_lesson].'</td>
 <td align="left">'.$row[second_valuable_lesson].'</td>
 <td align="left">'.$row[third_valuable_lesson].'</td>
 </tr>'
    .'  <tr style="background-color:#CCCCCC;color:#000000;">
  <td align="left">'.CourseStrengths.'</td>
  <td align="left">'.CourseWeakness.'</td>
 </tr>'
 .'<tr style="background-color:#FFFFFF;color:#000000;">
 <td align="left">'.$row[course_strength].'</td>
 <td align="left">'.$row[course_weakness].'</td>
 </tr>'
; }
$tbl = $tbl . '</table>'; 
$pdf->writeHTML($tbl, true, false, false, false, '');

有什么想法吗?