в моем 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>
для одного экземпляра, а затем запрограммировать печать строк между ними. Как я могу это решить?
$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, '');
Если вы хотите сказать, что вам нужна одна таблица, которая включает в себя все результаты в виде строк, только цикл печати строк и перенос открывающих и закрывающих тегов вне цикла.
$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, '');
Я бы, конечно, сделал что-то вроде этого:
$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 здесь и развязать здесь
$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, '');