我使用tcpdf在我的网站中生成pdf ...
我使用代码从mysql中检索数据并将其显示在pdf文件的表格中......
$pdf->writeHTML('<table width="600px" border="1px">');
//data iteration
include('../connect.php');
$rer = mysql_query("SELECT * FROM complaint WHERE DATE_FORMAT(date_time,'%Y-%m-%d') between '$rep_from' and '$rep_to' order by id DESC;",$con);
while($rr=mysql_fetch_array($rer))
{
$id=$rr['id'];
$c_id=$rr['ref_id'];
$pdf->writeHTML('<tr><td>'.$c_id.'</td></tr>');
}
$pdf->writeHTML('<table>');
问题是代码和迭代工作正常......但是当我使用表标签时,我显示
Warning: array_push() expects parameter 1 to be array, null given in tcpdf.php on line 22165
文件中的这一行与表格有关...我的代码有什么问题???
提前致谢...
答案 0 :(得分:4)
文档指出HTML格式应该很好,我理解它应该是格式良好的,从开始标记到结束标记的完整元素。如果我不这样做,我的实验会显示类似的错误。
因此,您可以将此示例代码重写为:
$html = '<table width="600px" border="1px">';
//data iteration
include('../connect.php');
$rer = mysql_query("SELECT * FROM complaint WHERE DATE_FORMAT(date_time,'%Y-%m-%d') between '$rep_from' and '$rep_to' order by id DESC;",$con);
while($rr=mysql_fetch_array($rer))
{
$id=$rr['id'];
$c_id=$rr['ref_id'];
// concatenate a string, instead of calling $pdf->writeHTML()
$html .= '<tr><td>'.$c_id.'</td></tr>';
}
$html .= '</table>';
$pdf->writeHTML($html);
您应该看到如何在字符串变量中收集完整的输出。只有格式良好的完整表格才会被赋予$pdf->writeHTML()
。这对你也有用。
注意:的
此代码永远不会看到生产。正如tadman在他的评论中所说的那样,将PDO或mysqli与参数化的预备语句一起使用。