2

我正在使用 TCPDF 库来创建报告。当我从数据库中获取几行数据时,它给了我快速的结果。但是当数据库返回数百行时,它需要几分钟。我也搜索了论坛。许多人提到禁用字体。

    protected $font_subsetting = false;

但还是没能得到好的表现。我的报告代码是:

$html.='<tr  >
        <td align="left" style="border-bottom: solid 1px #999;"><strong>'.$i.'</strong></td>
<td align="left" style="border-bottom: solid 1px #999;">'.$belt_no.'</td>
<td align="left" style="border-bottom: solid 1px #999;">'.$hname.'</td>
        <td align="left" style="border-bottom: solid 1px #999;">'.$hdob.'</td>
        <td align="left" style="border-bottom: solid 1px #999;">'.$hhiredate.'</td>
        <td align="left" style="border-bottom: solid 1px #999;">'.$hhomeps.'</td>
                    <td align="left" style="border-bottom: solid 1px #999;">'.$hrank.'</td>
        <td align="left" style="border-bottom: solid 1px #999;">'.$st_date.'</td>
        <td align="left" style="border-bottom: solid 1px #999;">'.$police_station.'</td>   </tr>'; $i++; }    $html.='</table>';$pdf->writeHTML($html, true, false, true, false, '');
4

1 回答 1

0

如果您有数百行,那很可能需要时间,我不知道您在循环中在做什么,但我在您的代码中看到您正在使用诸如 $belt_no 之类的变量,您可以通过避免变量 as 来优化您的代码尽可能。如果您从表中获取而不是执行以下操作:

while($ligne = mysql_fect_array($res)){
$belt_no = $ligne['belt_no'];
$hdob= $ligne['hdob'];
$html = '<td align="left" style="border-bottom: solid 1px #999;">'.$belt_no.'</td>
<td align="left" style="border-bottom: solid 1px #999;">'.$hname.'</td>
';
}

您可以跳过变量并节省一些内存空间:

while($ligne = mysql_fect_array($res)){

$html = '<td align="left" style="border-bottom: solid 1px #999;">'.$ligne['belt_no'].'</td>
<td align="left" style="border-bottom: solid 1px #999;">'.$ligne['hdob'].'</td>
';
}
于 2013-07-02T11:01:20.723 回答