Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 阵列回波问题_Php_Fpdf - Fatal编程技术网

Php 阵列回波问题

Php 阵列回波问题,php,fpdf,Php,Fpdf,我正在尝试以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格式输出数据。多达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){

}elseif($x>=5&&$x当第11条记录进入您的代码时,您的代码转到
其他部分,在那里您编写代码只是为了创建一个新页面,没有其他内容。这就是为什么跳过第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++;
}

如果
$x>10
,您将点击添加新页面的
else
语句。但是您没有实际输出第11项,而是继续处理第12项。请这样尝试:(使用链接代码)@AlivetoDie谢谢much@AlivetoDie是的,的确如此:)