2014-04-21 68 views
0

我有一張裁判表,我打印成PDF格式的所有比賽裁判都有一週。 我可以爲所有比賽的裁判製作一份PDF文件,現在我想爲所有裁判員製作一份PDF格式的裁判報告。我將PDF創建放入循環中,但僅打印第一個裁判。 這是我擁有的所有代碼。使用FPDF在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); 
+0

你需要這麼多的查詢嗎? – Strawberry

+0

從快速查看代碼我會說,你必須把PDF類和'PDF =新PDF('L','毫米','A4');'在while循環和'$ pdf-> Output()'關閉文檔後,在文件末尾輸出Output()。 – Thomas

+0

也許我會用較少的查詢來做,但我認爲它不是太多 – temerariomalaga

回答

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); 
+0

它只顯示查詢的第一個結果,我試過以前做過。 – temerariomalaga

+0

您是否嘗試過並檢查您的查詢結果是否正常? –

+0

我發現了這個問題。帶有計數的查詢應該只有計數,並用其他字段進行其他查詢。它現在有效。 – temerariomalaga