数组回显问题

Issue with array echo

我正在尝试以 pdf 格式输出数据。最多 10 个值的代码工作正常,但它不显示第 11 个值,而是从第 12 个值继续。请帮我解决一下。

<?php
$result=mysqli_query($conn,"SELECT * FROM TABLE");
$Items = array();
while ($row = mysqli_fetch_assoc($result)) {
  $Items[] = $row;
}

$x=0;
$y=0;
$a=5;
$b=5;

require('../pdf/alphapdf.php');
$pdf = new AlphaPDF();

$pdf->AddPage();
$title = 'Demo';
$pdf->SetTitle($title);
$pdf->SetLineWidth(1.5);
$pdf->SetAlpha(1);

foreach ($Items as $array) {
if($x<5){
    $pdf->Image('abc.png',$a,$b,-300);
    $pdf->SetFont('Arial', '', 9);
    $pdf->Text($a,$b,$array['userName']);
    $a=$a+58;
    $x++;
}elseif($x>=5 && $x<10){
    if($a>290){$a=5;}
    $b=100;
    $pdf->Image('abc.png',$a,$b,-300);
    $pdf->SetFont('Arial', '', 9);
    $pdf->Text($a,$b,$array['userName']);
    $a=$a+58;
    $x++;
}else{
    $x=0;
    $a=5;
    $b=5;
    $pdf->AddPage();
 }
}
$pdf->Output();
?>

我知道这个问题是因为我正在使用 else 语句,但我不确定如何解决它。

这里是针对您这个问题的快速而简短的解决方案。您还必须同时使用小于和等于两者。请更新您的代码行:

}elseif($x>=5 && $x<=10){

谢谢!

当您的代码中出现第 11 条记录时,您的代码将转到 else 部分,您编写的代码只是为了创建一个新页面,没有别的。这就是第 11 条记录被跳过的原因。

另外你多次使用重复的代码,其实并不需要,这样试试:

$x=0;
$a=5;
$b=5;
foreach ($Items as $array) {

    if($x %10 == 0 ){ // after each 10 record add new page
        $x=0;
        $a=5;
        $b=5;
        $pdf->AddPage();
    }
    //add entries irrespective of pages.
    $pdf->Image('abc.png',$a,$b,-300);
    $pdf->SetFont('Arial', '', 9);
    $pdf->Text($a,$b,$array['userName']);
    $a=$a+58;
    $x++;
}