Exportar a pdf o word

Hola, como hago para generar un reporte de php a pdf, estoy usando la lib fpdf, genere un reporte con la tabla que tiene los datos personales, pero al intentar generar un reporte de una tabla con varios registros, me muestra solo los títulos de la tabla más no los registros, tengo días en esto y no he podido por favor ayúdenme. Estoy trabajando con mysql. Aquí esta la parte del código donde se genera el php y son dos tablas en una misma página, el problema es con el segundo:
require('fpdf.php');
class PDF extends FPDF
{
//Cabecera de página
function Header()
{
    //Logo
    $this->Image('images\seniat.jpg',20,15,50);
    //Arial bold 15
    $this->SetFont('Arial','B',15);
    //Movernos a la derecha
    $this->Cell(80);
    //Título nro 70 es el margen superior hasta el titulo
    $this->Cell(30,70,'Consulta de Funcionarios',20,0,'C');
    //Salto de línea, margen superior hasta el comienzo de la tabla de datos.
    $this->Ln(50);
}
function Footer()
{
    //Posición: a 1,5 cm del final
    $this->SetY(-15);
    //Arial italic 8
    $this->SetFont('Arial','I',8);
    //Número de página
    $this->Cell(0,10,'Sistema Control Aplicativos Iseniat',0,0,'C');
}
}
unlink('funcionario.pdf');
$pdf=new PDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',10);
$pdf->Cell(180,5,'Datos actuales del funcionario',1,1, 'C');
$pdf->SetFont('Arial','I',7);
$pdf->Cell(45,5,'Nombre',1,0, 'C');
$pdf->Cell(45,5,'Cédula',1,0, 'C');
$pdf->Cell(45,5,'Login',1,0, 'C');
$pdf->Cell(45,5,'Correo',1,1, 'C');
//El valor 5 es el alto de las celdas..
$pdf->Cell(45,5,$consulta['1'],1,0);
$pdf->Cell(45,5,$consulta['0'],1,0);
$pdf->Cell(45,5,$consulta['3'],1,0);
$pdf->Cell(45,5,$consulta['4'],1,1);
$pdf->Cell(45,5,'Cargo',1,0, 'C');
$pdf->Cell(45,5,'Dependencia',1,0, 'C');
$pdf->Cell(45,5,'Perfil',1,0, 'C');
$pdf->Cell(45,5,'Estado',1,1, 'C');  //salto de línea
$pdf->Cell(45,5,$consulta['5'],1,0);
$pdf->Cell(45,5,$consulta['6'],1,0);
$pdf->Cell(45,5,$consulta['7'],1,0);
$pdf->Cell(45,5,$consulta['8'],1,1);
/* Opciones del funcionario*/
$pdf->SetFont('Arial','B',10);
$pdf->Cell(194,5,'Opciones del funcionario',1,1, 'C');
$pdf->SetFont('Arial','I',10);
$pdf->Cell(194,5,'Aplicativos',1,1, 'C');
$pdf->SetFont('Arial','B',7);
$pdf->Cell(80,5,'Aplicativo',1,0, 'C');
$pdf->Cell(38,5,'Solicitado',1,0, 'C');
$pdf->Cell(38,5,'Procesado',1,0, 'C');
$pdf->Cell(38,5,'Desactivado',1,1, 'C');
$i = 0;
while($opc = mysql_fetch_assoc($opciones)) {
$i = $i+1;
}
$pdf->Cell(80,5,$opc['0'],1,0);
$pdf->Cell(38,5,$opc['1'],1,0);
$pdf->Cell(38,5,$opc['2'],1,0);
$pdf->Cell(38,5,$opc['3'],1,1);
$pdf->Cell(194,5,'Roles',1,1, 'C');
$pdf->Cell(35,5,'Rol',1,0, 'C');
$pdf->Cell(30,5,'Estado',1,0, 'C');
$pdf->Cell(30,5,'Solicitado',1,0, 'C');
$pdf->Cell(30,5,'Procesado',1,0, 'C');
$pdf->Cell(30,5,'Desactivado',1,0, 'C');
$pdf->Cell(39,5,'Solicitante',1,1, 'C');
$pdf->Cell(35,5,$opc['4'],1,0);
$pdf->Cell(30,5,$opc['5'],1,0);
$pdf->Cell(30,5,$opc['6'],1,0);
$pdf->Cell(30,5,$opc['7'],1,0);
$pdf->Cell(30,5,$opc['8'],1,0);
$pdf->Cell(39,5,$opc['9'],1,1);
$pdf->CELL("<b>Fecha:</b> ".date("d/m/Y"), 10);
$pdf->CELL("<b>Hora:</b> ".date("H:i:s")."\n\n", 10);
$pdf->Output('funcionario.pdf');

1 respuesta

Respuesta
1
En el código que enviaste no veo ninguna consulta a la base de datos solo veo el mysql_fetch_assoc pero la consulta y el envío no los veo(mysql_query), por esto debe ser que no te muestra la información de la tabla.
Añadiendo a lo anterior no se si de pronto se omitió la consulta para ser vista en esta página, lo otro que no me parece es que el while debería contener las variables de la base de datos pues en el while es donde se recorre los registros, claro esta el while seria necesario si se espera más de una fila.
$consulta='select...';
$resultado=mysql_query($consulta);
//Varias filas a reicibir
while($opc = mysql_fetch_assoc($resultado)) {
$pdf->Cell(80,5,$opc['campo_bd'],1,0);
$pdf->Cell(38,5,$opc['campo_bd'],1,0);
$pdf->Cell(38,5,$opc['campo_bd'],1,0);
$pdf->Cell(38,5,$opc['campo_bd'],1,1);
}
Hola.! Gracias por la rápida respuesta y bueno si tenia el código de conexión a la bd solo que no lo envíe en el mensaje anterior, aunque ya solucione este problem, ahora tengo otro. Yo hago una consulta a la bd de una persona, introduciendo la cedula de la misma y luego me muestra en una tabla, todos los privilegios que este tiene en un sistema. El problema se presenta cuando tengo que actualizar esos datos, en esa tabla, es decir, por ejm, cambiar la fecha de activación de un privilegio, cambiar el nombre a otro y así, pero que me lo haga todo en una sola sentencia sql, ya que consultar registro por registro para actualizar seria muy tedioso, ademas cuando lo hago con el siguiente código me sale en todas las celdas de la tabla la palabra Array, ademas tengo tres combos también. Espero que me puedas ayudar también esta vez y muchas gracias...! Aquí esta el código donde se debería actualizar la tabla completa..
<?php
$apli=$_POST['aplicativo'];
$sol_a=$_POST['sol_a'];
$pro_a=$_POST['proc_a'];
$des_a=$_POST['desac_a'];
$rol=$_POST['rol'];
$edo=$_POST['estado'];
$sol_r=$_POST['sol_r'];
$pro_r=$_POST['proc_r'];
$des_r=$_POST['desac_r'];
$solic=$_POST['solicitante'];
$ced=$_POST['cedula'];
$id_conn= mysql_connect("localhost","root","123456");
  if ($id_conn=0)
     {
       echo("Falló la conexion"); 
       echo mysql_errormsg($id_conn);
     } else
         {
            $dbSelect= mysql_select_db('aplicativos');
            if (!$dbSelect)
              {
                die('No se pudo seleccionar la base de datos'. mysql_error());
              }
   // Obtenemos el numero de registros...
 $opc= "SELECT * FROM opciones_funcionario WHERE cedula='$_POST[cedula]'";
 $res=mysql_query($opc);
 $num=mysql_num_rows($res);
   if ($_POST["Actualizar"]) {
    for ($i=0; $i<=$num; $i++) {
 $strsql= "UPDATE opciones_funcionario SET id_aplicativo='$_POST[aplicativo][$i]', fecha_sol_a='$_POST[sol_a][$i]', fecha_proc_a='$_POST[proc_a][$i]', fecha_desac_a='$_POST[desac_a][$i]', id_rol='$_POST[rol][$i]', id_edo='$_POST[estado][$i]', fecha_sol_r='$_POST[sol_r][$i]', fecha_proc_r='$_POST[proc_r][$i]', fecha_desac_r='$_POST[desac_r][$i]', solicitante='$_POST[solicitante][$i]' where cedula='$_POST[cedula][$i]';";
 }
 $result=mysql_query($strsql);
 if (!$result)
                  {
                    echo "No se pudo ejecutar la consulta. Error: ",mysql_error();
      exit;
    } // Fin de consulta no ejecutada...
}
//Selecciono los datos actualizados para mostrarlos...
 $nombres = "SELECT id_aplicativo, fecha_sol_a, fecha_proc_a, fecha_desac_a, id_rol, id_edo, fecha_sol_r, fecha_proc_r, fecha_desac_r, solicitante FROM opciones_funcionario where cedula='$_POST[cedula]';";
 $opciones=mysql_query($nombres);
echo("
<tr>
<td align=center><strong>Los cambios realizados son los siguientes:</strong></td>
</tr>
");
echo "
<table width='70%' border='3' bordercolor='#ff0000'height='50%'>
";
echo "
<tr>
";
 echo "<th>Aplicativo</th>";
 echo "<th>Solicitado</th>";
 echo "<th>Procesado</th>";
 echo "<th>Desactivado</th>";
 echo "<th>Rol</th>";
 echo "<th>Estado</th>";
 echo "<th>Solicitado</th>";
 echo "<th>Procesado</th>";
 echo "<th>Desactivado</th>";
 echo "<th>Solicitante</th>";
echo "
</tr>
";
while ($op=mysql_fetch_array($opciones)) {
    echo"<TR>
     <TD>",$op[0],"</TD>
     <TD>",$op[1],"</TD>
     <TD>",$op[2],"</TD>
     <TD>",$op[3],"</TD>
     <TD>",$op[4],"</TD>
     <TD>",$op[5],"</TD>
     <TD>",$op[6],"</TD>
     <TD>",$op[7],"</TD>
     <TD>",$op[8],"</TD>
     <TD>",$op[9],"</TD>
        </TR>";
            }
echo"
</table>
";
print("</CENTER>");
} // Fin del else principal...
?>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas