6

私のPHPでは、

while($info3 = mysql_fetch_array($result3)){
$Name = $info3["Name"];
$Address = $info3["Address"];
$Age = $info3["Age"];
// -----------------------------------------------------------------------------
$tbl = '
<table style="width: 638px;" cellspacing="0">
    <tr>
        <td style="border: 1px solid #000000; width: 150px;">'.$Name.'</td>
        <td style="border: 1px solid #000000; width: 378px;">'.$Age.'</td>
        <td style="border: 1px solid #000000; width: 110px; text-align:center">'.$Address.'</td>
    </tr>
</table>
';

$pdf->writeHTML($tbl, true, false, false, false, '');
}

テーブル全体を常に私のPDFで印刷します。しかし、私は単一のインスタンスに対して印刷<table>したいので、その間の行をループ印刷したいと思います。</table>どうすればこれを解決できますか?

4

4 に答える 4

10
$tbl_header = '<table style="width: 638px;" cellspacing="0">';
$tbl_footer = '</table>';
$tbl = '';

// foreach item in your array...
$tbl .= '
    <tr>
        <td style="border: 1px solid #000000; width: 150px;">'.$Name.'</td>
        <td style="border: 1px solid #000000; width: 378px;">'.$Age.'</td>
        <td style="border: 1px solid #000000; width: 110px; text-align:center">'.$Address.'</td>
    </tr>
';

$pdf->writeHTML($tbl_header . $tbl . $tbl_footer, true, false, false, false, '');
于 2011-03-10T15:20:01.073 に答える
2

つまり、すべての結果を行として含む1つのテーブルが必要な場合は、行の印刷をループし、開始タグと終了タグをループの外に移行するだけです。

$tbl = '<table style="width: 638px;" cellspacing="0">';

    while($info3 = mysql_fetch_array($result3)){
    $Name = $info3["Name"];
    $Address = $info3["Address"];
    $Age = $info3["Age"];

    $tbl .= '<tr>
            <td style="border: 1px solid #000000; width: 150px;">'.$Name.'</td>
            <td style="border: 1px solid #000000; width: 378px;">'.$Age.'</td>
            <td style="border: 1px solid #000000; width: 110px; text-align:center">'.$Address.'</td>
            </tr>'
     }
$tbl .= '</table>';


$pdf->writeHTML($tbl, true, false, false, false, '');
于 2011-03-10T15:18:29.093 に答える
2

私は確かにこのようなことをします:

$table = '<table style="width: 638px;" cellspacing="0">%s</table>'
$tr    = '
    <tr>
        <td style="border: 1px solid #000000; width: 150px;"> %s</td>
        <td style="border: 1px solid #000000; width: 378px;"> %s</td>
        <td style="border: 1px solid #000000; width: 110px; text-align:center">%s</td>
    </tr>
';

while($info3 =  = mysql_fetch_array($result3)){
    $trs[] = sprintf($tr, $info3["Name"], $info3["Age"], $info3["Address"]);
}

$tbl = sprintf($table, implode( $trs ));
$pdf->writeHTML($tbl, true, false, false, false, '');

テンプレートを使用してプレゼンテーション層を整理できない場合は、少なくとも実際のロジックからできるだけ分離してください。

ここでsprintfについて読み、ここ内破することができます

于 2011-03-10T15:23:32.567 に答える
0
$tbl = '<table style="width: 638px;" cellspacing="0">';
while($info3 = mysql_fetch_array($result3)){
  $Name = $info3["Name"];
  $Address = $info3["Address"];
  $Age = $info3["Age"];
  // -----------------------------------------------------------------------------
  $tbl = $tbl . '<tr>
          <td style="border: 1px solid #000000; width: 150px;">'.$Name.'</td>
          <td style="border: 1px solid #000000; width: 378px;">'.$Age.'</td>
          <td style="border: 1px solid #000000; width: 110px; text-align:center">'.$Address.'</td>
      </tr>';
  }  
  $tbl = $tbl . '</table>';
  $pdf->writeHTML($tbl, true, false, false, false, '');
于 2011-03-10T15:22:36.767 に答える