PHP SQL循环 - 排除循环中最后一个代码
这是我的代码示例如下。我正在使用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');
}
你差不多完成了。只是一些错误的地方的语法。您应该首先将$ 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');
}
在循环外定义变量解决了问题 - $ t = $ results-> num_rows在循环内总是等于1 - 谢谢! – user2044644
看起来像'$ i'并不是真的需要。当$ t变为零时,它将被评估为假。 –
@ Don'tPanic,啊。对。我将删除$ i – Mojtaba
您可以将分页符上方的输出移动到mpdf并跳过第一次迭代。 – Blake
'(++ $ t!= $ i + 1)' –
看起来你正在提取一个对象,然后对它做任何事情? (我的意思是''obj'永远不会在'while'循环中使用。) –