2011-06-15 92 views
0

我试图使用ezpdf将mysql数据输出到pdf。我已经成功生成了我的报告的第一部分,但第二部分列了很多列,当然不会跨页面。下图可能会解释我想要做的事情。当前布局的帮助PHP数组(EZPDF)

实施例:


| --- HEADER - | --- HEADER2 - | --- HEADER3 - | --- HEADER4 - | - HEADER5 - |

| USERNAME1 | DATAFIELD1 | DATAFIELD2 | DATAFIELD3 | DATAFIELD3 |

| USERNAME2 | DATAFIELD1 | DATAFIELD2 | DATAFIELD3 | DATAFIELD3 |

| USERNAME3 | DATAFIELD1 | DATAFIELD2 | DATAFIELD3 | DATAFIELD3 |


的什么,我试图完成的示例:


| ---- 头1 --- | --- HEADER2 --- |

| USERNAME1 | DATAFIELD1 |

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

| DATAFIELD2 | DATAFIELD3 | DATAFIELD4 |


| ---- 头1 --- | --- HEADER2 --- |

| USERNAME2 | DATAFIELD1 |

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

| DATAFIELD2 | DATAFIELD3 | DATAFIELD4 |


| ---- 头1 --- | --- HEADER2 --- |

| USERNAME3 | DATAFIELD1 |

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

| DATAFIELD2 | DATAFIELD3 | DATAFIELD4 |


我希望这是有道理的。如果任何人可以帮助它将非常感激。

下面是我的测试代码

test code

回答

0

在您发布的example code中,您在使用mysql_fetch_array($ Recordset1)的循环之前调用mysql_fetch_assoc($ Recordset1),因此循环将错过第一个结果。如果你在其他代码中做同样的事情,那么这就是问题所在。

+0

谢谢Cez!我删除了第一个电话,它就像一个魅力。 – phpn00b 2011-06-17 13:57:15

0

其实,如果你不mantaining旧代码,我建议你使用TCPDF产生从PHP它提供了很多功能PDF。例如将html转换为PDF代码而没有问题。

在你情况下,你可以创建HTML表格,然后将其转换像this例如

编辑 - 在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> 
'; 
+0

感谢您的建议尼古拉,我实际上开始使用TCPDF,但没有成功让我的任何报告工作。我与其他几个报告一起在EZPDF取得了成功。 EZPDF对我来说要容易得多。 – phpn00b 2011-06-15 15:43:19

+0

@Brian B你在TCPDF中遇到了什么问题?无论如何,我要做的事情是使用html表来组织数据,然后将它们输出为PDF – 2011-06-15 15:50:04

+0

我在循环表中的数据时遇到了很多麻烦。只显示第一行数据。 – phpn00b 2011-06-15 17:34:14

0

ok我修正了错误,并得到了循环工作。出于某种原因,尽管它正在切断第一行数据。

$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, ''); 

有什么想法吗?

+0

看到我的答案,为什么你失踪连续 – Cez 2011-06-16 21:48:45