TCPDF - printing table from mysql

前端 未结 4 1117
情书的邮戳
情书的邮戳 2021-01-01 01:19

in my php,

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


        
相关标签:
4条回答
  • 2021-01-01 01:42
    $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, '');
    
    0 讨论(0)
  • 2021-01-01 01:55
    $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 讨论(0)
  • 2021-01-01 01:55

    I would certainly do something like this:

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

    If you can't organize your presentation layer with templates at least make it as separated as you can from the actual logic.

    You can read about sprintf here and implode here

    0 讨论(0)
  • 2021-01-01 02:02

    If what you mean is you want one table that includes all the results as rows, only loop the row printing and migrate the opening and closing tags outside the loop.

    $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 讨论(0)
提交回复
热议问题