而FPDF中的循环只打印1个结果

时间:2017-08-09 15:51:34

标签: php mysql pdf fpdf

我遇到了FPDF的问题,我想创建一个While循环,它返回我的SQL查询在使用Phpmyadmin时所做的每一个结果,这里的问题是它只返回一个。如果我使用
$ PDF->细胞(190,10, ''[格式 '] '',1,1,0 $ pdf_info2。'); 它确实打印了我想要的结果,但我需要将它们返回到表中,如下所示。 Ps:这是我的第一个问题,所以如果我不清楚我的问题,我会批评。 提前致谢

$html='<table border="0">
            <tr>
                <td width="150" height="40" bgcolor="#e6e6e6">Tipo</td>
                <td width="150" height="40" bgcolor="#e6e6e6">Formato</td>
                <td width="150" height="40" bgcolor="#e6e6e6">&nbsp;</td>
                <td width="150" height="40" bgcolor="#e6e6e6">Pago</td>
                <td width="150" height="40" bgcolor="#e6e6e6">Editar</td>
            </tr>';
            while($pdf_info2 = $smth->fetch(PDO::FETCH_ASSOC)) {
                $html2 = '<tr>
<td width="150" height="40"   bgcolor="#e6e6e6">'.$pdf_info['format'].'</td>
                <td width="150" height="40" bgcolor="#e6e6e6">.$pdf_info['format'].</td>
                <td width="150" height="40" bgcolor="#e6e6e6">.$pdf_info['format'].</td>
                <td width="150" height="40" bgcolor="#e6e6e6">.$pdf_info['format'].</td>
                <td width="150" height="40" bgcolor="#e6e6e6">.$pdf_info['format'].</td>
            </tr>';
            }

$pdf->WriteHTML($html);
$pdf->WriteHTML($html2);

2 个答案:

答案 0 :(得分:0)

使用此代码:

首先,您必须在循环之前定义:$html2 = '';并在while循环中与$html2 .=连接,请参阅下面的代码以获取更新的代码:

$html2 ='';
$html ='<table border="0">
<tr>
    <td width="150" height="40" bgcolor="#e6e6e6">Tipo</td>
    <td width="150" height="40" bgcolor="#e6e6e6">Formato</td>
    <td width="150" height="40" bgcolor="#e6e6e6">&nbsp;</td>
    <td width="150" height="40" bgcolor="#e6e6e6">Pago</td>
    <td width="150" height="40" bgcolor="#e6e6e6">Editar</td>
</tr>';

while($pdf_info2 = $smth->fetch(PDO::FETCH_ASSOC)) {
    $html2 .='<tr>
        <td width="150" height="40"   bgcolor="#e6e6e6">'.$pdf_info2['format'].'</td>
        <td width="150" height="40" bgcolor="#e6e6e6">'.$pdf_info2['format'].'</td>
        <td width="150" height="40" bgcolor="#e6e6e6">'.$pdf_info2['format'].'</td>
        <td width="150" height="40" bgcolor="#e6e6e6">'.$pdf_info2['format'].'</td>
        <td width="150" height="40" bgcolor="#e6e6e6">'.$pdf_info2['format'].'</td>
    </tr>';
}

$pdf->WriteHTML($html);
$pdf->WriteHTML($html2);

答案 1 :(得分:0)

** Option1。**首先您需要将数据与之前的数据合并,因此请使用$html .= $html;

选项2 更新$ pdf_info

$pdf_info2

并且无需使用2 $pdf->WriteHTML();

所以总代码将是

$html='<table border="0">
            <tr>
                <td width="150" height="40" bgcolor="#e6e6e6">Tipo</td>
                <td width="150" height="40" bgcolor="#e6e6e6">Formato</td>
                <td width="150" height="40" bgcolor="#e6e6e6">&nbsp;</td>
                <td width="150" height="40" bgcolor="#e6e6e6">Pago</td>
                <td width="150" height="40" bgcolor="#e6e6e6">Editar</td>
            </tr>';
            while($pdf_info2 = $smth->fetch(PDO::FETCH_ASSOC)) {
                $html .= '<tr>
                <td width="150" height="40"   bgcolor="#e6e6e6">'.$pdf_info2['format'].'</td>
                <td width="150" height="40" bgcolor="#e6e6e6">'.$pdf_info2['format'].'</td>
                <td width="150" height="40" bgcolor="#e6e6e6">'.$pdf_info2['format'].'</td>
                <td width="150" height="40" bgcolor="#e6e6e6">'.$pdf_info2['format'].'</td>
                <td width="150" height="40" bgcolor="#e6e6e6">'.$pdf_info2['format'].'</td>
            </tr>';
            }

$pdf->WriteHTML($html);