2016-09-22 93 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