Foros del Web » Programando para Internet » PHP »

Se repiten páginas en PDF según los valores devuelto por una consulta

Estas en el tema de Se repiten páginas en PDF según los valores devuelto por una consulta en el foro de PHP en Foros del Web. Vuelvo otra vez con otro tema sobre los PDF (espero que sea el último ). Estoy generando un PDF con FPDF en el que se ...
  #1 (permalink)  
Antiguo 23/04/2014, 03:36
Avatar de temerariomalaga  
Fecha de Ingreso: marzo-2013
Ubicación: Londres
Mensajes: 156
Antigüedad: 11 años, 1 mes
Puntos: 9
Se repiten páginas en PDF según los valores devuelto por una consulta

Vuelvo otra vez con otro tema sobre los PDF (espero que sea el último ).
Estoy generando un PDF con FPDF en el que se muestran todos los partidos que tiene un árbitro en una jornada. Pues bien, al añadir la jornada a lo que ya tenía de otros temas anteriores sigue funcionando todo bien pero hay un pequeño gran problema, si un árbitro tiene un partido todo va bien pero si tiene más partidos me imprime una página por cada partido que tiene. No es que me imprima un partido distinto por página, si no que me imprime en cada página todos los partidos que tiene asignados.
Este es el código que tengo ahora mismo.
Código PHP:
Ver original
  1. $jornada=$_GET['jornada'];
  2. include"fpdf.php";
  3. include"conexion.php";
  4. class PDF extends FPDF{
  5.     function Header(){
  6.         global $sede, $localidad, $apellidos, $nombre;
  7.         $this->Image('images/logo.jpg', 10, 5, 20);
  8.         $this->SetFont('Arial', 'B', 15);
  9.         $this->Cell(180);
  10.         $this->Cell(20, 0, utf8_decode('Designaciones árbitro'), 'C');
  11.         $this->Ln(10);
  12.         $this->Cell(180);
  13.         $this->SetFont('Arial', '', 12);
  14.         $this->Cell(20, 0, utf8_decode('Nombre: ('.$sede."".$localidad.") ".$apellidos.', '.$nombre), 'C');
  15.         $this->Ln(15);
  16.         $this->SetFont('Arial', 'B', 22);
  17.         $this->Cell(0,0,'',1);
  18.         $this->Ln(1);
  19.     }
  20.     function Footer(){
  21.         $this->SetY(-15);
  22.         $this->SetFont('Arial','I',8);
  23.         $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
  24.     }
  25. }
  26. function fullUpper($localidad){
  27.     return strtr(strtoupper($localidad), array(
  28.       "à" => "À",
  29.       "è" => "È",
  30.       "ì" => "Ì",
  31.       "ò" => "Ò",
  32.       "ù" => "Ù",
  33.       "á" => "Á",
  34.       "é" => "É",
  35.       "í" => "Í",
  36.       "ó" => "Ó",
  37.       "ú" => "Ú",
  38.       "â" => "Â",
  39.       "ê" => "Ê",
  40.       "î" => "Î",
  41.       "ô" => "Ô",
  42.       "û" => "Û",
  43.       "ç" => "Ç",
  44.     ));
  45. }
  46. $pdf=new PDF('L','mm','A4');
  47. $pdf->AliasNbPages();
  48. $sql=new mysqli($servidor, $usuario, $clave, $basedatos);
  49. $sql->set_charset("latin1");
  50. if($sql->connect_error){
  51.     echo "Error no ".$sql->connect_errno.": ".$sql->connect_error;
  52. }
  53. $r=$sql->query("SELECT COUNT(*) FROM EQUIPO_ARBITRAL");
  54. while($row11=$r->fetch_array()){
  55.     $r1=$sql->query("SELECT Apellidos, Licencia FROM EQUIPO_ARBITRAL");
  56.     while($row12=$r1->fetch_array()){
  57.         $apellidos=$row12["Apellidos"];
  58.         $licencia=$row12["Licencia"];
  59.         $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
  60.            INNER JOIN LOCALIDAD ON EQUIPO_ARBITRAL.Cod_localidad=LOCALIDAD.Codigo_localidad INNER JOIN SEDE ON LOCALIDAD.Codigo_sede=SEDE.Codigo_sede
  61.            LEFT JOIN PARTIDO P1 ON EQUIPO_ARBITRAL.Codigo_arbitro=P1.ArbPrin LEFT JOIN PARTIDO P2 ON EQUIPO_ARBITRAL.Codigo_arbitro=P2.ArbAux
  62.            LEFT JOIN PARTIDO P3 ON EQUIPO_ARBITRAL.Codigo_arbitro=P3.Anotador LEFT JOIN PARTIDO P4 ON EQUIPO_ARBITRAL.Codigo_arbitro=P4.Crono
  63.            LEFT JOIN PARTIDO P5 ON EQUIPO_ARBITRAL.Codigo_arbitro=P5.Op24 LEFT JOIN PARTIDO P6 ON EQUIPO_ARBITRAL.Codigo_arbitro=P6.Coche
  64.            WHERE Apellidos LIKE '%$apellidos%' AND Licencia='$licencia'
  65.            AND (P1.Jornada=$jornada OR P2.Jornada=$jornada OR P3.Jornada=$jornada OR P4.Jornada=$jornada OR P5.Jornada=$jornada OR P6.Jornada=$jornada)");
  66.         while($row=$res->fetch_array()){
  67.             $sede=$row["Codigo_sede"];
  68.             $localidad=$row["LocNom"];
  69.             $apellidos=$row["Apellidos"];
  70.             $nombre=$row["ArbNom"];
  71.             $a1=$row["a1"];
  72.             $a2=$row["a2"];
  73.             $a3=$row["a3"];
  74.             $a4=$row["a4"];
  75.             $a5=$row["a5"];
  76.             $a6=$row["a6"];
  77.             switch($localidad){
  78.                 case 'Alhaurín de la Torre':
  79.                     $localidad='ALT';
  80.                 break;
  81.                 case 'Alhaurín el Grande':
  82.                     $localidad='ALG';
  83.                 break;
  84.                 case 'Málaga':
  85.                     $sede='';
  86.                 break;
  87.             }
  88.             $localidad=substr($localidad, 0, 4);
  89.             $localidad=fullUpper($localidad);
  90.             if($a1!=null or $a2!=null or $a3!=null or $a4!=null or $a5!=null or $a6!=null){
  91.                 $pdf->AddPage();
  92.                 $mysqli=new mysqli($servidor, $usuario, $clave, $basedatos);
  93.                 $mysqli->set_charset("latin1");
  94.                 if($mysqli->connect_error){
  95.                     echo "Error no ".$mysqli->connect_errno.": ".$mysqli->connect_error;
  96.                 }
  97.                 $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,
  98.                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
  99.                FROM PARTIDO P INNER JOIN EQUIPO E1 ON P.EquipoA=E1.Codigo_equipo
  100.                INNER JOIN EQUIPO E2 ON P.EquipoB=E2.Codigo_equipo
  101.                INNER JOIN PABELLON PA ON P.Codigo_pabellon=PA.Codigo_pabellon
  102.                INNER JOIN CATEGORIA ON P.Codigo_categoria=CATEGORIA.Codigo_categoria
  103.                INNER JOIN LOCALIDAD ON  PA.Codigo_localidad=LOCALIDAD.Codigo_localidad
  104.                INNER JOIN SEDE ON LOCALIDAD.Codigo_sede=SEDE.Codigo_sede
  105.                LEFT JOIN EQUIPO_ARBITRAL A1 ON A1.Codigo_arbitro=P.ArbPrin
  106.                LEFT JOIN EQUIPO_ARBITRAL A2 ON A2.Codigo_arbitro=P.ArbAux
  107.                LEFT JOIN EQUIPO_ARBITRAL A3 ON A3.Codigo_arbitro=P.Anotador
  108.                LEFT JOIN EQUIPO_ARBITRAL A4 ON A4.Codigo_arbitro=P.Crono
  109.                LEFT JOIN EQUIPO_ARBITRAL A5 ON A5.Codigo_arbitro=P.Op24
  110.                LEFT JOIN EQUIPO_ARBITRAL A6 ON A6.Codigo_arbitro=P.Coche
  111.                WHERE Jornada=$jornada AND (A1.Apellidos LIKE '%$apellidos%' OR A2.Apellidos LIKE '%$apellidos%'
  112.                OR A3.Apellidos LIKE '%$apellidos%' OR A4.Apellidos LIKE '%$apellidos%' OR
  113.                A5.Apellidos LIKE '%$apellidos%' OR A6.Apellidos LIKE '%$apellidos%')
  114.                ORDER BY Fecha, Hora");
  115.                 $pdf->SetFont('Arial', 'B', 12);
  116.                 $pdf->Cell(165);
  117.                 $pdf->Cell(60,10, 'Principal');
  118.                 $pdf->Cell(60,10, 'Anotador');
  119.                 $pdf->Ln(5);
  120.                 $pdf->Cell(165);
  121.                 $pdf->Cell(60,10, 'Auxiliar');
  122.                 $pdf->Cell(60,10, 'Cronometrador');
  123.                 $pdf->Ln(5);
  124.                 $pdf->Cell(10);
  125.                 $pdf->Cell(10,10,'Encuentro');
  126.                 $pdf->Cell(40);
  127.                 $pdf->Cell(25,10, 'Fecha');
  128.                 $pdf->Cell(15,10, 'Hora');
  129.                 $pdf->Cell(30,10, 'Categoria');
  130.                 $pdf->Cell(25,10, 'Compet.');
  131.                 $pdf->Cell(10);
  132.                 $pdf->Cell(60,10, 'Coche');
  133.                 $pdf->Cell(60,10, 'Operador 24"');
  134.                 $pdf->Ln(10);
  135.                 $pdf->Cell(0,0,'',1);
  136.                 $pdf->Ln(1);
  137.                 $pdf->Cell(0,0,'',1);
  138.                 $pdf->Ln(1);
  139.                 while($row=$result->fetch_array()){
  140.                     $pdf->SetFont('Arial', '', 10);
  141.                     $pdf->Cell(60,10,utf8_decode(substr($row["EquipoA"], 0, 40)));
  142.                     $pdf->Cell(25,10,$row["Fecha"]);
  143.                     $pdf->Cell(15,10,$row["Hora"]);
  144.                     $pdf->Cell(30,10,$row["Abreviatura"]);
  145.                     $pdf->Cell(18,10,$row["Tipo"]);
  146.                     $pdf->Cell(65,10,utf8_decode($row["ArbPrin"]));
  147.                     $pdf->Cell(3);
  148.                     $pdf->Cell(65,10,utf8_decode($row["Anotador"]));
  149.                     $pdf->Ln(5);
  150.                     $pdf->Cell(60,10,utf8_decode(substr($row["EquipoB"], 0, 40)));
  151.                     $pdf->Cell(88);
  152.                     $pdf->Cell(60,10,utf8_decode($row["ArbAux"]));
  153.                     $pdf->Cell(8);
  154.                     $pdf->Cell(60,10,utf8_decode($row["Crono"]));
  155.                     $pdf->Ln(5);
  156.                     $pdf->SetFont('Arial', 'B', 10);
  157.                     $pdf->Cell(20,10,'Localidad: ');
  158.                     $pdf->SetFont('Arial', '', 10);
  159.                     $pdf->Cell(30,10,utf8_decode($row["Localidad"]));
  160.                     $pdf->Cell(25);
  161.                     $pdf->SetFont('Arial', 'B', 10);
  162.                     $pdf->Cell(12,10,'Pista: ');
  163.                     $pdf->SetFont('Arial', '', 10);
  164.                     $pdf->Cell(30,10,utf8_decode($row["Pista"]));
  165.                     $pdf->Cell(31);
  166.                     $pdf->Cell(60,10,utf8_decode($row["Coche"]));
  167.                     $pdf->Cell(8);
  168.                     $pdf->Cell(60,10,utf8_decode($row["Op24"]));
  169.                     $pdf->Ln(7);
  170.                     $pdf->Cell(0,0,'',1);
  171.                     $pdf->Ln(1);
  172.                 }
  173.             }
  174.         }  
  175.     }
  176. }
  177. $pdf->Output();
  178. mysqli_close($mysqli);
__________________
Málaga Club de Fútbol: Memoria, Compromiso, Fe

Etiquetas: fpdf, mysql, pdf
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:40.