2011-03-10 26 views
6

印刷臺,TCPDF - 從我的PHP的MySQL

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>,然後想要循環打印這兩行之間的行。我該如何解決這個問題?

回答

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, ''); 
+0

的建議非常感謝你..':)' – 2011-03-10 15:44:01

2

如果你的意思是你想要一個包含所有結果爲行的表格,只循環打印行並將開始和結束標籤遷移到循環之外。

$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, ''); 
+0

沒有工作。這顯示只有一行..和我得到的結果只有'$ PDF - >的WriteHTML($ TBL,真的,假的,假的,假的,「 ');'在循環內 – 2011-03-10 15:28:21

+0

@blasteralfred - 你可以在你的SQL語句中編輯,所以我們可以確定它是取多行嗎? – DeaconDesperado 2011-03-10 15:30:52

+0

即使沒有sql,在一個簡單的看,它使用虛擬數據stucks ..我發現andre的答案有用..但我仍然在尋找一個像Deacon's – 2011-03-10 15:38:21

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, ''); 
1

,我一定會做這樣的事情:

$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, ''); 

如果您不能組織與模板表示層至少能讓它分開,你從CAN實際的邏輯。

您可以read about sprintf hereimplode here