Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/11/2012, 11:06
Mauk
 
Fecha de Ingreso: septiembre-2012
Ubicación: Mexico
Mensajes: 58
Antigüedad: 11 años, 7 meses
Puntos: 2
Pregunta Botón para ver PDF desde PHP

Hola amigos, tengo un problema acerca de como hacer que la consulta hacia mi BD en MySql, se haga a través de un PDF, tratare de explicarlo mejor.

Tengo el archivo view_list.php el cual nos muestra una consulta de tabla de MySql a través de un select, este esta formado de varias opciones, cada una de ellas es el nombre de la tabla a la que haré la consulta.

Hasta ahí todo bien, al hacer la consulta, me muestra la tabla con los parámetros que yo le indico, la variable $c_trabajo se obtiene de lo que se selecciono en el select, y como lo dije antes esta obtiene el nombre de la tabla.

Código PHP:
Ver original
  1. $c_trabajo = $_POST['listas'];
  2. $sql = "SELECT * FROM $c_trabajo";

aqui esta mi archivo completo view_list.php

Código PHP:
Ver original
  1. <?php
  2. include("connect_db.php");
  3.  
  4.   $c_trabajo = $_POST['listas'];
  5.  
  6.   $sql = "SELECT * FROM $c_trabajo";
  7.  
  8.   $result = mysql_query($sql);
  9.  
  10.     echo "<div align='center'>
  11.     <h4><font face='verdana' size='5' color='blue'>Depto./Area: $c_trabajo </font></h4>";
  12.     setlocale(LC_ALL,"SP");
  13.     echo "Periodo del 22 al 26 de ".strftime("%B de %Y");
  14.     echo "<br>";
  15.     echo "<br>";
  16.     echo "<table border='2' cellpadding='2'>
  17.     <tr bgcolor='green'>
  18.     <th width='180' height='30'><font face='verdana' size='2' color='white'>Titulo del puesto</font></th>
  19.     <th><font face='verdana' size='2' color='white'>No. de Plaza</font></th>
  20.     <th width='220' height='10'><font face='verdana' size='2' color='white'>Nombre del Trabajador</font></th>
  21.     <th><font face='verdana' size='2' color='white'>R.P.U/R.T.T</font></th>
  22.     <th><font face='verdana' size='2' color='white'>Area</font></th>
  23.     <th><font face='verdana' size='2' color='white'>Cuenta</font></th>
  24.     <th width='25' height='10'><font face='verdana' size='2' color='white'>L</font></th>
  25.     <th width='25' height='10'><font face='verdana' size='2' color='white'>M</font></th>
  26.     <th width='25' height='10'><font face='verdana' size='2' color='white'>Mi</font></th>
  27.     <th width='25' height='10'><font face='verdana' size='2' color='white'>J</font></th>
  28.     <th width='25' height='10'><font face='verdana' size='2' color='white'>V</font></th>
  29.     <th width='25' height='10'><font face='verdana' size='2' color='white'>S</font></th>
  30.     <th width='25' height='10'><font face='verdana' size='2' color='white'>D</font></th>
  31.     </tr>";
  32.    
  33.     while($row = mysql_fetch_array($result))
  34.     {
  35.     echo "<tr>";
  36.     echo "<td><font face='verdana' size='2'>" . $row['puesto'] . "</font></td>";
  37.     echo "<td align='center'><font face='verdana' size='2'>" . $row['plaza'] . "</font></td>";
  38.     echo "<td><font face='verdana' size='2'>" . $row['n_trab'] . "</font></td>";
  39.     echo "<td align='center'><font face='verdana' size='2'>" . $row['rpe'] . "</font></td>";
  40.     echo "<td align='center'><font face='verdana' size='2'>" . $row['area'] . "</font></td>";
  41.     echo "<td align='center'><font face='verdana' size='2'>" . $row['cuenta'] . "</font></td>";
  42.     echo "<td><font face='verdana' size='2'>" . $row['L'] . "</font></td>";
  43.     echo "<td><font face='verdana' size='2'>" . $row['M'] . "</font></td>";
  44.     echo "<td><font face='verdana' size='2'>" . $row['Mi'] . "</font></td>";
  45.     echo "<td><font face='verdana' size='2'>" . $row['J'] . "</font></td>";
  46.     echo "<td><font face='verdana' size='2'>" . $row['V'] . "</font></td>";
  47.     echo "<td><font face='verdana' size='2'>" . $row['S'] . "</font></td>";
  48.     echo "<td><font face='verdana' size='2'>" . $row['D'] . "</font></td>";
  49.     echo "</tr>";
  50.     }
  51.     echo "</table>";
  52.     echo "</div>";
  53.     echo "<br>";
  54.    
  55.     echo "<form method='post' action='pruebaPDF2.php'>
  56.     <table border='1' align='center'>
  57.     <tr>
  58.     <td><input type='submit' name='pdf' value='Ver Formato PDF'></td>
  59.     </tr>
  60.     </table>
  61.     </form>";
  62.    
  63.     if(isset($_POST['pdf'])){
  64.                 require("pruebaPDF2.php");
  65.             }
  66.     mysql_close($conexion);
  67. ?>

Ahora, como pueden ver tengo definido un INPUT en el archivo el cual al hacer click en el me manda hacia otra pagina la cual tendra el formato en pdf y mostratra la tabla a la que se le consulto.

Código PHP:
Ver original
  1. echo "<form method='post' action='pruebaPDF2.php'>
  2.     <table border='1' align='center'>
  3.     <tr>
  4.     <td><input type='submit' name='pdf' value='Ver Formato PDF'></td>
  5.     </tr>
  6.     </table>
  7.     </form>";
  8.    
  9.     if(isset($_POST['pdf'])){
  10.                 require("pruebaPDF2.php");
  11.             }

Ahora bien al momento de que me manda hacia pruebaPDF2.php, necesito que se genere la misma consulta a traves de la variable $c_trabajo, la cual de nuevo funcionara como parametro de nombre de tabla que necesita la consulta para mandar traer los datos.

Aqui el archivo pruebaPDF2.php completo:

Código PHP:
Ver original
  1. <?php
  2.  
  3. require("fpdf/fpdf.php");
  4. include("connect_db.php");
  5.  
  6.    
  7.     $company = "Compañía";
  8.     $dpto = "Depto./Area:";
  9.     $periodo = "Periodo del XX al YY de MM de 2012";
  10.    
  11.     $pdf = new FPDF("P", "mm", "A4");
  12.     $pdf->AddPage();
  13.    
  14.     //Estructura del documento
  15.     $pdf->SetFont("Arial","","19");
  16.     $pdf->SetTextColor(0,153,0);
  17.    
  18.     $pdf->Image("cfe.jpg",18,20,-170);
  19.    
  20.     $pdf->SetXY(65,15);
  21.     $pdf->Cell(100,10,$company,0,0);
  22.     $pdf->Ln();
  23.    
  24.     $pdf->SetFont("Arial","","12");
  25.     $pdf->SetTextColor(0,153,0);
  26.    
  27.     $pdf->SetX(65);
  28.     $pdf->Cell(150,10,$dpto);
  29.     $pdf->Ln();
  30.    
  31.     $pdf->SetFont("Arial","","11");
  32.     $pdf->SetTextColor(0,153,0);
  33.    
  34.     $pdf->SetX(75);
  35.     $pdf->Cell(150,10,$periodo);
  36.     $pdf->Ln();
  37.    
  38.     $pdf->SetFont("Arial","","10");
  39.     $pdf->SetTextColor(255,255,255);
  40.     $pdf->SetFillColor(0,153,0);
  41.     $pdf->Cell(38,7,"Titulo del puesto",1,0,'C',true);
  42.     $pdf->Cell(18,7,"Plaza",1,0,'C',1);
  43.     $pdf->Cell(55,7,"Nombre del trabajador",1,0,'C',true);
  44.     $pdf->Cell(16,7,"RPE/RTT",1,0,'C',true);
  45.     $pdf->Cell(13,7,"Cuenta",1,0,'C',true);
  46.     $pdf->Cell(9,7,"Area",1,0,'C',true);
  47.     $pdf->Cell(6,7,"L",1,0,'C',true);
  48.     $pdf->Cell(6,7,"M",1,0,'C',true);
  49.     $pdf->Cell(6,7,"Mi",1,0,'C',true);
  50.     $pdf->Cell(6,7,"J",1,0,'C',true);
  51.     $pdf->Cell(6,7,"V",1,0,'C',true);
  52.     $pdf->Cell(6,7,"S",1,0,'C',true);
  53.     $pdf->Cell(6,7,"D",1,0,'C',true);
  54.     $pdf->Ln();
  55.  
  56.     $pdf->SetFont("Arial","","9");
  57.     $pdf->SetTextColor(0,0,0);
  58.     $pdf->SetFillColor(255,255,255);
  59.     $consulta = mysql_query("SELECT * From $c_trabajo");
  60.    
  61.     while($resultado = mysql_fetch_array($consulta)){
  62.     $pdf->Cell(38,5,$resultado['puesto'],1,0,'C',true);
  63.     $pdf->Cell(18,5,$resultado['plaza'],1,0,'C',true);
  64.     $pdf->Cell(55,5,$resultado['n_trab'],1,0,'C',true);
  65.     $pdf->Cell(16,5,$resultado['rpe'],1,0,'C',true);
  66.     $pdf->Cell(13,5,$resultado['area'],1,0,'C',true);
  67.     $pdf->Cell(9,5,$resultado['cuenta'],1,0,'C',true);
  68.     $pdf->Cell(6,5,$resultado['L'],1,0,'C',true);
  69.     $pdf->Cell(6,5,$resultado['M'],1,0,'C',true);
  70.     $pdf->Cell(6,5,$resultado['Mi'],1,0,'C',true);
  71.     $pdf->Cell(6,5,$resultado['J'],1,0,'C',true);
  72.     $pdf->Cell(6,5,$resultado['V'],1,0,'C',true);
  73.     $pdf->Cell(6,5,$resultado['S'],1,0,'C',true);
  74.     $pdf->Cell(6,5,$resultado['D'],1,0,'C',true);
  75.     $pdf->Ln();
  76.     }
  77.    
  78.     //Observaciones
  79.     $pdf->SetFont("Arial","","9");
  80.     $pdf->Text(18,252,"Observaciones:");
  81.     $pdf->Line(18,262,200,262);
  82.    
  83.     //Firmas
  84.     $pdf->SetFont("Arial","","8");
  85.     $pdf->Text(37,270,"Elaboró:");
  86.     $pdf->Line(18,280,68,280);
  87.     $pdf->Text(28,283,"Nombre y firma oficinista");
  88.     $pdf->Text(100,270,"Vo.Bo.:");
  89.     $pdf->Line(78,280,136,280);
  90.     $pdf->Text(75,283,"Nombre y firma Srio. de trabajo y/o Auxiliar Sindical");
  91.     $pdf->Text(163,270,"Autorizó:");
  92.     $pdf->Line(148,280,195,280);
  93.     $pdf->Text(150,283,"Nombre y firma jefe dpto y/o area");
  94.    
  95.     $pdf->Output();
  96. ?>

Como pueden ver en la parte de
Código PHP:
Ver original
  1. $consulta = mysql_query("SELECT * From $c_trabajo");

se encuentra esta consulta, entonces mi pregunta es, como puedo enviar el valor de esta variable desde view_list.php hacia el archivo que genera el pdf para que haga la consulta hacia el mismo valor que obtuvo antes.

Lo he probado con setcookie y el metodo get, pero no me ha funcionado, alguien que me pueda ayudar??

Ojala me haya explicado, muchas gracias por su ayuda!