为什么PHP重复PDF格式的页面?

时间:2014-04-23 08:35:40

标签: php mysql pdf fpdf

我有一张带FPDF的PDF。这个PDF正在生成一些MySQL查询。第一个查询计算重复表的值,第二个获取PDF标题的值,第三个查询在游戏当天获得匹配的裁判(裁判从最后一个查询获得),第四个查询执行if裁判有一场比赛并获得他所拥有的比赛并将其打印到PDF中。 如果裁判只有一场比赛,那么没关系,但是如果他有一个PHP打印的页面多于他所拥有的那些页面,并且所有页面都具有裁判的所有匹配。我想在没有重复页面的情况下这样做。 这是我的代码。

$jornada=$_GET['jornada'];
include"fpdf.php";
include"conexion.php";
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');
    }
}
function fullUpper($localidad){
    return strtr(strtoupper($localidad), array(
      "à" => "À",
      "è" => "È",
      "ì" => "Ì",
      "ò" => "Ò",
      "ù" => "Ù",
      "á" => "Á",
      "é" => "É",
      "í" => "Í",
      "ó" => "Ó",
      "ú" => "Ú",
      "â" => "Â",
      "ê" => "Ê",
      "î" => "Î",
      "ô" => "Ô",
      "û" => "Û",
      "ç" => "Ç",
    ));
} 
$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(*) FROM EQUIPO_ARBITRAL");
while($row11=$r->fetch_array()){
    $r1=$sql->query("SELECT Apellidos, Licencia FROM EQUIPO_ARBITRAL");
    while($row12=$r1->fetch_array()){
        $apellidos=$row12["Apellidos"];
        $licencia=$row12["Licencia"];
        $res=$sql->query("SELECT DISTINCT Apellidos, P1.EquipoA AS 'a1',P2.EquipoA AS 'a2',P3.EquipoA AS 'a3',P4.EquipoA AS 'a4',P5.EquipoA AS 'a5',P6.EquipoA AS 'a6', 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
            LEFT JOIN PARTIDO P1 ON EQUIPO_ARBITRAL.Codigo_arbitro=P1.ArbPrin LEFT JOIN PARTIDO P2 ON EQUIPO_ARBITRAL.Codigo_arbitro=P2.ArbAux
            LEFT JOIN PARTIDO P3 ON EQUIPO_ARBITRAL.Codigo_arbitro=P3.Anotador LEFT JOIN PARTIDO P4 ON EQUIPO_ARBITRAL.Codigo_arbitro=P4.Crono
            LEFT JOIN PARTIDO P5 ON EQUIPO_ARBITRAL.Codigo_arbitro=P5.Op24 LEFT JOIN PARTIDO P6 ON EQUIPO_ARBITRAL.Codigo_arbitro=P6.Coche
            WHERE Apellidos LIKE '%$apellidos%' AND Licencia='$licencia'
            AND (P1.Jornada=$jornada OR P2.Jornada=$jornada OR P3.Jornada=$jornada OR P4.Jornada=$jornada OR P5.Jornada=$jornada OR P6.Jornada=$jornada)");
        while($row=$res->fetch_array()){
            $sede=$row["Codigo_sede"];
            $localidad=$row["LocNom"];
            $apellidos=$row["Apellidos"];
            $nombre=$row["ArbNom"];
            $a1=$row["a1"];
            $a2=$row["a2"];
            $a3=$row["a3"];
            $a4=$row["a4"];
            $a5=$row["a5"];
            $a6=$row["a6"];
            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);
            $localidad=fullUpper($localidad);
            if($a1!=null or $a2!=null or $a3!=null or $a4!=null or $a5!=null or $a6!=null){
                $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 DISTINCT 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 Jornada=$jornada AND (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);
                while($row=$result->fetch_array()){
                    $pdf->SetFont('Arial', '', 10);
                    $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(18,10,$row["Tipo"]);
                    $pdf->Cell(65,10,utf8_decode($row["ArbPrin"]));
                    $pdf->Cell(3);
                    $pdf->Cell(65,10,utf8_decode($row["Anotador"]));
                    $pdf->Ln(5);
                    $pdf->Cell(60,10,utf8_decode(substr($row["EquipoB"], 0, 40)));
                    $pdf->Cell(88);
                    $pdf->Cell(60,10,utf8_decode($row["ArbAux"]));
                    $pdf->Cell(8);
                    $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(31);
                    $pdf->Cell(60,10,utf8_decode($row["Coche"]));
                    $pdf->Cell(8);
                    $pdf->Cell(60,10,utf8_decode($row["Op24"]));
                    $pdf->Ln(7);
                    $pdf->Cell(0,0,'',1);
                    $pdf->Ln(1);
                }
            }
        }   
    }
}
$pdf->Output();
mysqli_close($mysqli);
mysqli_close($sql);

感谢您的帮助;)

0 个答案:

没有答案