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 などの変数を使用していることがわかります。変数を避けることでコードを最適化できます可能な限り。代わりにテーブルからフェッチしている場合:

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 に答える