使用FPDF在PDF中添加新页面

时间:2014-04-21 11:03:17

标签: php mysql pdf fpdf

我有一张带裁判员的桌子,我打印了一周PDF所有裁判员的PDF格式。 我可以为所有比赛的一名裁判制作一个PDF,现在我想为所有裁判制作PDF,一页为裁判。我将PDF创建放入循环中,但它只打印第一个裁判。 这是我拥有的代码。

include"fpdf.php";
include"conexion.php";
$sql=new mysqli($servidor, $usuario, $clave, $basedatos);
$sql->set_charset("latin1");
if($sql->connect_error){
    echo "Error nº ".$sql->connect_errno.": ".$sql->connect_error;
}
$r=$sql->query("SELECT COUNT(*) Total, Apellidos, Licencia FROM EQUIPO_ARBITRAL");
while($row11=$r->fetch_array()){
    $apellido=$row11["Apellidos"];
    $licencia=$row11["Licencia"];
    $res=$sql->query("SELECT Apellidos, EQUIPO_ARBITRAL.Nombre ArbNom, LOCALIDAD.Nombre LocNom, SEDE.Codigo_sede FROM EQUIPO_ARBITRAL
        INNER JOIN LOCALIDAD ON EQUIPO_ARBITRAL.Cod_localidad=LOCALIDAD.Codigo_localidad INNER JOIN SEDE ON LOCALIDAD.Codigo_sede=SEDE.Codigo_sede
        WHERE Apellidos LIKE '%$apellido%' AND Licencia='$licencia'");
    while($row=$res->fetch_array()){
        $sede=$row["Codigo_sede"];
        $localidad=$row["LocNom"];
        $apellidos=$row["Apellidos"];
        $nombre=$row["ArbNom"];
    }
    switch($localidad){
        case 'Alhaurín de la Torre': 
            $localidad='ALT';
        break;
        case 'Alhaurín el Grande':
            $localidad='ALG';
        break;
        case 'Málaga':
            $sede='';
        break;
    }
    $localidad=substr($localidad, 0, 4);
    class PDF extends FPDF{
        function Header(){
            global $sede, $localidad, $apellidos, $nombre;
            $this->Image('images/logo.jpg', 10, 5, 20);
            $this->SetFont('Arial', 'B', 15);
            $this->Cell(180);
            $this->Cell(20, 0, utf8_decode('Designaciones Árbitro'), 'C');
            $this->Ln(10);
            $this->Cell(180);
            $this->SetFont('Arial', '', 12);
            $this->Cell(20, 0, utf8_decode('Nombre: ('.$sede."".$localidad.") ".$apellidos.', '.$nombre), 'C');
            $this->Ln(15);
            $this->SetFont('Arial', 'B', 22);
            $this->Cell(0,0,'',1);
            $this->Ln(1);
        }
        function Footer(){
            $this->SetY(-15);
            $this->SetFont('Arial','I',8);
            $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
        }
    }
    $pdf=new PDF('L','mm','A4');
    $pdf->AliasNbPages();
    $pdf->AddPage();
    $mysqli=new mysqli($servidor, $usuario, $clave, $basedatos);
    $mysqli->set_charset("latin1");
    if($mysqli->connect_error){
        echo "Error nº ".$mysqli->connect_errno.": ".$mysqli->connect_error;
    }
    $result=$mysqli->query("SELECT E1.Nombre EquipoA, E2.Nombre EquipoB, DATE_FORMAT(Fecha, '%d/%m/%Y') AS 'Fecha', TIME_FORMAT(Hora, '%H:%i') AS 'Hora', Abreviatura, Tipo, LOCALIDAD.Nombre Localidad, PA.Nombre Pista, PA.Codigo_pabellon, 
    CONCAT(A1.Licencia, ' ', A1.Apellidos,', ', A1.Nombre) ArbPrin, CONCAT(A2.Licencia, ' ', A2.Apellidos,', ', A2.Nombre) ArbAux, CONCAT(A3.Licencia, ' ', A3.Apellidos,', ', A3.Nombre) Anotador, CONCAT(A4.Licencia, ' ', A4.Apellidos,', ', A4.Nombre) Crono, CONCAT(A5.Licencia, ' ', A5.Apellidos,', ', A5.Nombre) Op24, CONCAT(A6.Licencia, ' ', A6.Apellidos,', ', A6.Nombre) Coche
    FROM PARTIDO P INNER JOIN EQUIPO E1 ON P.EquipoA=E1.Codigo_equipo 
    INNER JOIN EQUIPO E2 ON P.EquipoB=E2.Codigo_equipo 
    INNER JOIN PABELLON PA ON P.Codigo_pabellon=PA.Codigo_pabellon 
    INNER JOIN CATEGORIA ON P.Codigo_categoria=CATEGORIA.Codigo_categoria
    INNER JOIN LOCALIDAD ON  PA.Codigo_localidad=LOCALIDAD.Codigo_localidad
    INNER JOIN SEDE ON LOCALIDAD.Codigo_sede=SEDE.Codigo_sede
    LEFT JOIN EQUIPO_ARBITRAL A1 ON A1.Codigo_arbitro=P.ArbPrin
    LEFT JOIN EQUIPO_ARBITRAL A2 ON A2.Codigo_arbitro=P.ArbAux
    LEFT JOIN EQUIPO_ARBITRAL A3 ON A3.Codigo_arbitro=P.Anotador
    LEFT JOIN EQUIPO_ARBITRAL A4 ON A4.Codigo_arbitro=P.Crono
    LEFT JOIN EQUIPO_ARBITRAL A5 ON A5.Codigo_arbitro=P.Op24
    LEFT JOIN EQUIPO_ARBITRAL A6 ON A6.Codigo_arbitro=P.Coche
    WHERE A1.Apellidos LIKE '%$apellidos%' OR A2.Apellidos LIKE '%$apellidos%' 
    OR A3.Apellidos LIKE '%$apellidos%' OR A4.Apellidos LIKE '%$apellidos%' OR
    A5.Apellidos LIKE '%$apellidos%' OR A6.Apellidos LIKE '%$apellidos%'
    ORDER BY Fecha, Hora");
    $pdf->SetFont('Arial', 'B', 12);
    $pdf->Cell(165);
    $pdf->Cell(60,10, 'Principal');
    $pdf->Cell(60,10, 'Anotador');
    $pdf->Ln(5);
    $pdf->Cell(165);
    $pdf->Cell(60,10, 'Auxiliar');
    $pdf->Cell(60,10, 'Cronometrador');
    $pdf->Ln(5);
    $pdf->Cell(10);
    $pdf->Cell(10,10,'Encuentro');
    $pdf->Cell(40);
    $pdf->Cell(25,10, 'Fecha');
    $pdf->Cell(15,10, 'Hora');
    $pdf->Cell(30,10, 'Categoria');
    $pdf->Cell(25,10, 'Compet.');
    $pdf->Cell(10);
    $pdf->Cell(60,10, 'Coche');
    $pdf->Cell(60,10, 'Operador 24"');
    $pdf->Ln(10);
    $pdf->Cell(0,0,'',1);
    $pdf->Ln(1);
    $pdf->Cell(0,0,'',1);
    $pdf->Ln(1);
    $pdf->SetFont('Arial', '', 10);
    while($row=$result->fetch_array()){ 
        $pdf->Cell(60,10,utf8_decode(substr($row["EquipoA"], 0, 40)));
        $pdf->Cell(25,10,$row["Fecha"]);
        $pdf->Cell(15,10,$row["Hora"]);
        $pdf->Cell(30,10,$row["Abreviatura"]);
        $pdf->Cell(25,10,$row["Tipo"]);
        $pdf->Cell(60,10,utf8_decode($row["ArbPrin"]));
        $pdf->Cell(60,10,utf8_decode($row["Anotador"]));
        $pdf->Ln(5);
        $pdf->Cell(60,10,utf8_decode(substr($row["EquipoB"], 0, 40)));
        $pdf->Cell(95);
        $pdf->Cell(60,10,utf8_decode($row["ArbAux"]));
        $pdf->Cell(60,10,utf8_decode($row["Crono"]));
        $pdf->Ln(5);
        $pdf->SetFont('Arial', 'B', 10);
        $pdf->Cell(20,10,'Localidad: ');
        $pdf->SetFont('Arial', '', 10);
        $pdf->Cell(30,10,utf8_decode($row["Localidad"]));
        $pdf->Cell(25);
        $pdf->SetFont('Arial', 'B', 10);
        $pdf->Cell(12,10,'Pista: ');
        $pdf->SetFont('Arial', '', 10);
        $pdf->Cell(30,10,utf8_decode($row["Pista"]));
        $pdf->Cell(38);
        $pdf->Cell(60,10,utf8_decode($row["Coche"]));
        $pdf->Cell(60,10,utf8_decode($row["Op24"]));
        $pdf->Ln(8);
        $pdf->Cell(0,0,'',1);
        $pdf->Ln(3);
    }
    $pdf->Output();
}
mysqli_close($mysqli);
mysqli_close($sql);

1 个答案:

答案 0 :(得分:0)

您的pdf类和$ pdf->输出应该放在while循环和

之外

你的$ pdf-> AddPage();留在循环中。

include"fpdf.php";
include"conexion.php";
//Move the PDF class to here.
class PDF extends FPDF{
    function Header(){
        global $sede, $localidad, $apellidos, $nombre;
        $this->Image('images/logo.jpg', 10, 5, 20);
        $this->SetFont('Arial', 'B', 15);
        $this->Cell(180);
        $this->Cell(20, 0, utf8_decode('Designaciones árbitro'), 'C');
        $this->Ln(10);
        $this->Cell(180);
        $this->SetFont('Arial', '', 12);
        $this->Cell(20, 0, utf8_decode('Nombre: ('.$sede."".$localidad.") ".$apellidos.', '.$nombre), 'C');
        $this->Ln(15);
        $this->SetFont('Arial', 'B', 22);
        $this->Cell(0,0,'',1);
        $this->Ln(1);
    }
    function Footer(){
        $this->SetY(-15);
        $this->SetFont('Arial','I',8);
        $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
    }
}
$pdf=new PDF('L','mm','A4');
$pdf->AliasNbPages();

$sql=new mysqli($servidor, $usuario, $clave, $basedatos);
$sql->set_charset("latin1");
if($sql->connect_error){
    echo "Error no ".$sql->connect_errno.": ".$sql->connect_error;
}
$r=$sql->query("SELECT COUNT(*) Total, Apellidos, Licencia FROM EQUIPO_ARBITRAL");
while($row11=$r->fetch_array()){
    $apellido=$row11["Apellidos"];
    $licencia=$row11["Licencia"];
    $res=$sql->query("SELECT Apellidos, EQUIPO_ARBITRAL.Nombre ArbNom, LOCALIDAD.Nombre LocNom, SEDE.Codigo_sede FROM EQUIPO_ARBITRAL
        INNER JOIN LOCALIDAD ON EQUIPO_ARBITRAL.Cod_localidad=LOCALIDAD.Codigo_localidad INNER JOIN SEDE ON LOCALIDAD.Codigo_sede=SEDE.Codigo_sede
        WHERE Apellidos LIKE '%$apellido%' AND Licencia='$licencia'");
    while($row=$res->fetch_array()){
        $sede=$row["Codigo_sede"];
        $localidad=$row["LocNom"];
        $apellidos=$row["Apellidos"];
        $nombre=$row["ArbNom"];
    }
    switch($localidad){
        case 'Alhaurín de la Torre': 
            $localidad='ALT';
        break;
        case 'Alhaurín el Grande':
            $localidad='ALG';
        break;
        case 'Málaga':
            $sede='';
        break;
    }
    $localidad=substr($localidad, 0, 4);

    $pdf->AddPage();
    $mysqli=new mysqli($servidor, $usuario, $clave, $basedatos);
    $mysqli->set_charset("latin1");
    if($mysqli->connect_error){
        echo "Error no ".$mysqli->connect_errno.": ".$mysqli->connect_error;
    }
    $result=$mysqli->query("SELECT E1.Nombre EquipoA, E2.Nombre EquipoB, DATE_FORMAT(Fecha, '%d/%m/%Y') AS 'Fecha', TIME_FORMAT(Hora, '%H:%i') AS 'Hora', Abreviatura, Tipo, LOCALIDAD.Nombre Localidad, PA.Nombre Pista, PA.Codigo_pabellon, 
    CONCAT(A1.Licencia, ' ', A1.Apellidos,', ', A1.Nombre) ArbPrin, CONCAT(A2.Licencia, ' ', A2.Apellidos,', ', A2.Nombre) ArbAux, CONCAT(A3.Licencia, ' ', A3.Apellidos,', ', A3.Nombre) Anotador, CONCAT(A4.Licencia, ' ', A4.Apellidos,', ', A4.Nombre) Crono, CONCAT(A5.Licencia, ' ', A5.Apellidos,', ', A5.Nombre) Op24, CONCAT(A6.Licencia, ' ', A6.Apellidos,', ', A6.Nombre) Coche
    FROM PARTIDO P INNER JOIN EQUIPO E1 ON P.EquipoA=E1.Codigo_equipo 
    INNER JOIN EQUIPO E2 ON P.EquipoB=E2.Codigo_equipo 
    INNER JOIN PABELLON PA ON P.Codigo_pabellon=PA.Codigo_pabellon 
    INNER JOIN CATEGORIA ON P.Codigo_categoria=CATEGORIA.Codigo_categoria
    INNER JOIN LOCALIDAD ON  PA.Codigo_localidad=LOCALIDAD.Codigo_localidad
    INNER JOIN SEDE ON LOCALIDAD.Codigo_sede=SEDE.Codigo_sede
    LEFT JOIN EQUIPO_ARBITRAL A1 ON A1.Codigo_arbitro=P.ArbPrin
    LEFT JOIN EQUIPO_ARBITRAL A2 ON A2.Codigo_arbitro=P.ArbAux
    LEFT JOIN EQUIPO_ARBITRAL A3 ON A3.Codigo_arbitro=P.Anotador
    LEFT JOIN EQUIPO_ARBITRAL A4 ON A4.Codigo_arbitro=P.Crono
    LEFT JOIN EQUIPO_ARBITRAL A5 ON A5.Codigo_arbitro=P.Op24
    LEFT JOIN EQUIPO_ARBITRAL A6 ON A6.Codigo_arbitro=P.Coche
    WHERE A1.Apellidos LIKE '%$apellidos%' OR A2.Apellidos LIKE '%$apellidos%' 
    OR A3.Apellidos LIKE '%$apellidos%' OR A4.Apellidos LIKE '%$apellidos%' OR
    A5.Apellidos LIKE '%$apellidos%' OR A6.Apellidos LIKE '%$apellidos%'
    ORDER BY Fecha, Hora");
    $pdf->SetFont('Arial', 'B', 12);
    $pdf->Cell(165);
    $pdf->Cell(60,10, 'Principal');
    $pdf->Cell(60,10, 'Anotador');
    $pdf->Ln(5);
    $pdf->Cell(165);
    $pdf->Cell(60,10, 'Auxiliar');
    $pdf->Cell(60,10, 'Cronometrador');
    $pdf->Ln(5);
    $pdf->Cell(10);
    $pdf->Cell(10,10,'Encuentro');
    $pdf->Cell(40);
    $pdf->Cell(25,10, 'Fecha');
    $pdf->Cell(15,10, 'Hora');
    $pdf->Cell(30,10, 'Categoria');
    $pdf->Cell(25,10, 'Compet.');
    $pdf->Cell(10);
    $pdf->Cell(60,10, 'Coche');
    $pdf->Cell(60,10, 'Operador 24"');
    $pdf->Ln(10);
    $pdf->Cell(0,0,'',1);
    $pdf->Ln(1);
    $pdf->Cell(0,0,'',1);
    $pdf->Ln(1);
    $pdf->SetFont('Arial', '', 10);
    while($row=$result->fetch_array()){ 
        $pdf->Cell(60,10,utf8_decode(substr($row["EquipoA"], 0, 40)));
        $pdf->Cell(25,10,$row["Fecha"]);
        $pdf->Cell(15,10,$row["Hora"]);
        $pdf->Cell(30,10,$row["Abreviatura"]);
        $pdf->Cell(25,10,$row["Tipo"]);
        $pdf->Cell(60,10,utf8_decode($row["ArbPrin"]));
        $pdf->Cell(60,10,utf8_decode($row["Anotador"]));
        $pdf->Ln(5);
        $pdf->Cell(60,10,utf8_decode(substr($row["EquipoB"], 0, 40)));
        $pdf->Cell(95);
        $pdf->Cell(60,10,utf8_decode($row["ArbAux"]));
        $pdf->Cell(60,10,utf8_decode($row["Crono"]));
        $pdf->Ln(5);
        $pdf->SetFont('Arial', 'B', 10);
        $pdf->Cell(20,10,'Localidad: ');
        $pdf->SetFont('Arial', '', 10);
        $pdf->Cell(30,10,utf8_decode($row["Localidad"]));
        $pdf->Cell(25);
        $pdf->SetFont('Arial', 'B', 10);
        $pdf->Cell(12,10,'Pista: ');
        $pdf->SetFont('Arial', '', 10);
        $pdf->Cell(30,10,utf8_decode($row["Pista"]));
        $pdf->Cell(38);
        $pdf->Cell(60,10,utf8_decode($row["Coche"]));
        $pdf->Cell(60,10,utf8_decode($row["Op24"]));
        $pdf->Ln(8);
        $pdf->Cell(0,0,'',1);
        $pdf->Ln(3);
    }

}
$pdf->Output();//Move the output at here.
mysqli_close($mysqli);
mysqli_close($sql);