Foros del Web » Programando para Internet » PHP »

PHP OO Mostrar datos desde una base de datos a PDF

Estas en el tema de Mostrar datos desde una base de datos a PDF en el foro de PHP en Foros del Web. hola a todos, estoy haciendo un proyecto de una tienda de arriendo de películas en php y me asalta una duda, necesito la ayuda de ...
  #1 (permalink)  
Antiguo 13/12/2011, 14:08
 
Fecha de Ingreso: diciembre-2011
Ubicación: En algún lugar, por ahí..
Mensajes: 5
Antigüedad: 12 años, 4 meses
Puntos: 0
Pregunta Mostrar datos desde una base de datos a PDF

hola a todos, estoy haciendo un proyecto de una tienda de arriendo de películas en php y me asalta una duda, necesito la ayuda de ustedes, porfavooor!}

Como trabaja, me dirijo a una pantalla de registro en donde tengo una opción de generar un listado de usuarios por medio de Templates, hasta ahí todo bien, me muestra todos los usuarios que existen en la base de datos, pero cuando hago click en el botón "exportar a pdf" solo me muestra un dato (siendo que tengo varios), estoy usando pgAdmin como gestor de bd y por lo menos la conexión está bien. Aquí va el código:


<?php
include('fpdf/fpdf.php');
include ("class.TemplatePower.inc.php");
$pagina=new TemplatePower("listado_personas.html");
include ("conexion.php");

$pagina->prepare();
//BOTON DE EXPORTAR--------
if (isset($_POST["Exportar2"])&&$_POST["Exportar2"]=="Exportar a PDF")
{
$sql="SELECT * FROM usuario";
$consulta=pg_query($conexion, $sql);
$datos=pg_fetch_array($consulta);


if (pg_num_rows($consulta)>0)
{
$pdf = new FPDF();
$pdf->AddPage();

$pdf->Ln();
$pdf->Ln();
$pdf->Ln();
$pdf->Ln();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(80,5,"Listado de Personas",0,4,'C','','');

$pdf->Ln();
$pdf->Ln();

$pdf->SetFont('Arial','',10);
$pdf->SetFillColor(530,930,1);
$pdf->cell(35,10,'Rut',1,0,'c');
$pdf->cell(30,10,'Nombre',1,0,'c');
$pdf->cell(30,10,'Celular',1,0,'c');
$pdf->cell(30,10,'Direccion',1,0,'c');
$pdf->cell(30,10,'Deudor',1,0,'c');
$pdf->cell(30,10,'password',1,0,'c');
$pdf->Ln();


while ($datos=pg_fetch_array($consulta))
{
$sql="SELECT * FROM usuario";
$consulta=pg_query($conexion, $sql);
$datos=pg_fetch_array($consulta);

$cod_us=$datos["cod_us"];
$nombre=$datos["nombre"];
$celular=$datos["celular"];
$direccion=$datos["direccion"];
$deudor=$datos["deudor"];
$password=$datos["password"];


$pdf->cell(35,10,"$cod_us",1,0,'c');
$pdf->cell(30,10,"$nombre",1,0,'c');
$pdf->cell(30,10,"$celular",1,0,'c');
$pdf->cell(30,10,"$direccion",1,0,'c');
$pdf->cell(30,10,"$deudor",1,0,'c');
$pdf->cell(30,10,"$password",1,0,'c');
$pdf->Ln();


$pdf->Ln();
$pdf->Ln();


$pdf->Output('listado de personas.pdf','D');

}
}
}

$pagina->printToScreen();
?>
  #2 (permalink)  
Antiguo 13/12/2011, 14:28
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Mostrar datos desde una base de datos a PDF

Estas repitiendo dos veces las sentencias ......
Revisa tu mismo y te daras cuenta.....

En todo caso, he mejorado tu codigo.... podrias reemplazar todo por lo siguiente:

Código PHP:
Ver original
  1. <?php
  2. include('fpdf/fpdf.php');
  3. include ("class.TemplatePower.inc.php");
  4. $pagina = new TemplatePower("listado_personas.html");
  5. include ("conexion.php");
  6. $pagina->prepare();
  7. if (isset($_POST["Exportar2"]) && $_POST["Exportar2"] == "Exportar a PDF") {
  8.   $sql = "SELECT * FROM usuario";
  9.   $consulta = pg_query($conexion, $sql);
  10.   if (pg_num_rows($consulta) > 0) {
  11.     $pdf = new FPDF();
  12.     $pdf->AddPage();
  13.     $pdf->Ln();
  14.     $pdf->Ln();
  15.     $pdf->Ln();
  16.     $pdf->Ln();
  17.     $pdf->SetFont('Arial', 'B', 16);
  18.     $pdf->Cell(80, 5, "Listado de Personas", 0, 4, 'C', '', '');
  19.     $pdf->Ln();
  20.     $pdf->Ln();
  21.     $pdf->SetFont('Arial', '', 10);
  22.     $pdf->SetFillColor(530, 930, 1);
  23.     $pdf->cell(35, 10, 'Rut', 1, 0, 'c');
  24.     $pdf->cell(30, 10, 'Nombre', 1, 0, 'c');
  25.     $pdf->cell(30, 10, 'Celular', 1, 0, 'c');
  26.     $pdf->cell(30, 10, 'Direccion', 1, 0, 'c');
  27.     $pdf->cell(30, 10, 'Deudor', 1, 0, 'c');
  28.     $pdf->cell(30, 10, 'password', 1, 0, 'c');
  29.     $pdf->Ln();
  30.     while ($datos = pg_fetch_array($consulta)) {
  31.       $pdf->cell(35, 10, $datos["cod_us"], 1, 0, 'c');
  32.       $pdf->cell(30, 10, $datos["nombre"], 1, 0, 'c');
  33.       $pdf->cell(30, 10, $datos["celular"], 1, 0, 'c');
  34.       $pdf->cell(30, 10, $datos["direccion"], 1, 0, 'c');
  35.       $pdf->cell(30, 10, $datos["deudor"], 1, 0, 'c');
  36.       $pdf->cell(30, 10, $datos["password"], 1, 0, 'c');
  37.       $pdf->Ln();
  38.       $pdf->Ln();
  39.       $pdf->Ln();
  40.       $pdf->Output('listado de personas.pdf', 'D');
  41.     }
  42.   }
  43. }
  44. $pagina->printToScreen();
  45. ?>

Ahora... aun asi.... solo he corregido tu error de las consultas....
pero aun asi, creo que tienes que cambiar la posiciones "x" - "y" de la funcion pdf dentro del bucle while.

Bueno suerte y espero todo te vaya bien
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #3 (permalink)  
Antiguo 14/12/2011, 13:02
 
Fecha de Ingreso: diciembre-2011
Ubicación: En algún lugar, por ahí..
Mensajes: 5
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Mostrar datos desde una base de datos a PDF

Cita:
Iniciado por masterojitos Ver Mensaje
Estas repitiendo dos veces las sentencias ......
Revisa tu mismo y te daras cuenta.....

En todo caso, he mejorado tu codigo.... podrias reemplazar todo por lo siguiente:

Código PHP:
Ver original
  1. <?php
  2. include('fpdf/fpdf.php');
  3. include ("class.TemplatePower.inc.php");
  4. $pagina = new TemplatePower("listado_personas.html");
  5. include ("conexion.php");
  6. $pagina->prepare();
  7. if (isset($_POST["Exportar2"]) && $_POST["Exportar2"] == "Exportar a PDF") {
  8.   $sql = "SELECT * FROM usuario";
  9.   $consulta = pg_query($conexion, $sql);
  10.   if (pg_num_rows($consulta) > 0) {
  11.     $pdf = new FPDF();
  12.     $pdf->AddPage();
  13.     $pdf->Ln();
  14.     $pdf->Ln();
  15.     $pdf->Ln();
  16.     $pdf->Ln();
  17.     $pdf->SetFont('Arial', 'B', 16);
  18.     $pdf->Cell(80, 5, "Listado de Personas", 0, 4, 'C', '', '');
  19.     $pdf->Ln();
  20.     $pdf->Ln();
  21.     $pdf->SetFont('Arial', '', 10);
  22.     $pdf->SetFillColor(530, 930, 1);
  23.     $pdf->cell(35, 10, 'Rut', 1, 0, 'c');
  24.     $pdf->cell(30, 10, 'Nombre', 1, 0, 'c');
  25.     $pdf->cell(30, 10, 'Celular', 1, 0, 'c');
  26.     $pdf->cell(30, 10, 'Direccion', 1, 0, 'c');
  27.     $pdf->cell(30, 10, 'Deudor', 1, 0, 'c');
  28.     $pdf->cell(30, 10, 'password', 1, 0, 'c');
  29.     $pdf->Ln();
  30.     while ($datos = pg_fetch_array($consulta)) {
  31.       $pdf->cell(35, 10, $datos["cod_us"], 1, 0, 'c');
  32.       $pdf->cell(30, 10, $datos["nombre"], 1, 0, 'c');
  33.       $pdf->cell(30, 10, $datos["celular"], 1, 0, 'c');
  34.       $pdf->cell(30, 10, $datos["direccion"], 1, 0, 'c');
  35.       $pdf->cell(30, 10, $datos["deudor"], 1, 0, 'c');
  36.       $pdf->cell(30, 10, $datos["password"], 1, 0, 'c');
  37.       $pdf->Ln();
  38.       $pdf->Ln();
  39.       $pdf->Ln();
  40.       $pdf->Output('listado de personas.pdf', 'D');
  41.     }
  42.   }
  43. }
  44. $pagina->printToScreen();
  45. ?>

Ahora... aun asi.... solo he corregido tu error de las consultas....
pero aun asi, creo que tienes que cambiar la posiciones "x" - "y" de la funcion pdf dentro del bucle while.

Bueno suerte y espero todo te vaya bien
Masterojitos, de partida muchas gracias por darte el tiempo de aclarar mi duda
Y la solución era muy sencilla, solo bastaba con colocar el Outout afuera del while, y listo :)
Un saludo!
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 14:02.