2016-09-22 79 views
0

這是我的代碼示例如下。我正在使用MDPF。一切都生成得很好,但因爲我在循環中有分頁符,所以我總是在最後有一個額外的空白頁面。我能做些什麼來排除最後記錄中的分頁符。PHP SQL循環 - 排除循環中最後一個代碼

$results = $mysqli->query("SELECT xxxxxxx FROM table WHERE id='$id1';"); 
if(!$results){die();} 
if($results){ 
    //fetch results set as object and output HTML 
    while($obj = $results->fetch_object()) 
    { 
     $mpdf->WriteHTML($html); 

     $t = $results->num_rows; 
     $i = 0; 
     if (++$t != $i) { 
      $mpdf->WriteHTML("<pagebreak>"); 
     } 

    } 
    $mpdf->Output('thepdf.pdf', 'D'); 
} 
+3

您可以將分頁符上方的輸出移動到mpdf並跳過第一次迭代。 – Blake

+0

'(++ $ t!= $ i + 1)' –

+0

看起來你正在提取一個對象,然後對它做任何事情? (我的意思是''obj'永遠不會在'while'循環中使用。) –

回答

0

你差不多完成了。只是一些錯誤的地方的語法。您應該首先將$ t和$ i初始化。此外,你的if邏輯的一個簡單的變化:

$results = $mysqli->query("SELECT xxxxxxx FROM table WHERE id='$id1';"); 
if(!$results){die();} 
if($results){ 
    $t = $results->num_rows; 
//fetch results set as object and output HTML 
    while($obj = $results->fetch_object()) 
    { 
     $mpdf->WriteHTML($html); 

     if (--$t > 0) { 
      $mpdf->WriteHTML("<pagebreak>"); 
     } 

    } 
    $mpdf->Output('thepdf.pdf', 'D'); 
} 
+0

在循環外定義變量解決了問題 - $ t = $ results-> num_rows在循環內總是等於​​1 - 謝謝! – user2044644

+0

看起來像'$ i'並不是真的需要。當$ t變爲零時,它將被評估爲假。 –

+0

@ Don'tPanic,啊。對。我將刪除$ i – Mojtaba