Foros del Web » Programando para Internet » PHP »

Problema con FPDF y Consulta en BD

Estas en el tema de Problema con FPDF y Consulta en BD en el foro de PHP en Foros del Web. Buenas tardes, he querido utilizar la funcionalidad del FPDF para la impresion de reportes de una bd, hasta ahora la estoy aprendiendo a usar por ...
  #1 (permalink)  
Antiguo 04/09/2008, 11:20
 
Fecha de Ingreso: julio-2008
Mensajes: 12
Antigüedad: 15 años, 9 meses
Puntos: 0
Problema con FPDF y Consulta en BD

Buenas tardes, he querido utilizar la funcionalidad del FPDF para la impresion de reportes de una bd, hasta ahora la estoy aprendiendo a usar por lo cual estoy acoplando en lo que pueda el codigo de los turoriales a mi aplicación.

Siguiendo las guias me va muy bn con las imagenes, con texto, cabeceras y footer, pero cuando ya desee obtener informacion de la base de datos, estos no se me muestran en pantalla.

Especificamente es con el ultimo while, que por lo visto no me esta generando datos pues muestro otros valores en la tabla y si los muestra, ojala alguien me pueda ayudar con esto.

Adjunto el código actual:
Código:
<?php
require('fpdf.php');

class PDF extends FPDF
{
//Cabecera de página
function Header()
{
    //Logo
    $this->Image('ns_header.jpg',10,10,70,30);
    //Arial bold 15
    $this->SetFont('Arial','B',12);
	$this->SetFont('');
    //Movernos a la derecha
    $this->Cell(70);
	//Ampliar ancho del borde
	$this->SetLineWidth(0.4);
    //Título
    $this->Cell(80,30,'REPORTE DE ACTIVIDADES',1,0,'C');
	//Formato en Título
    $this->Cell(40,30,'FR-07',1,0,'C');
	//Formato en Título
    $this->Cell(-40,40,'V. 2',0,0,'C');
	//Movernos a la derecha
    $this->Cell(-150,30,' ',1,0,'R');
	//Numero de pagina
	$this->Cell(190,37,' ',1,0,'R');
	//Numero de pagina
	$this->Cell(0,67,'Página '.$this->PageNo().' de {nb}',0,0,'R');
    //Salto de línea
    $this->Ln(50);
}

//Pie de página
function Footer()
{
    //Posición: a 1,5 cm del final
    $this->SetY(-20);
    //Arial no italic 12
    $this->SetFont('Arial','I',10);
	$this->SetFont('');
	//Color de Llenado de cuadro
	$this->SetFillColor(200,200,200); //Gris según escala RGB
	//Ampliar ancho del borde
	$this->SetLineWidth(0.4);
	//Cuadro
	$this->Cell(0,15,'',1,0,'L',1);
	//Celdas
    $this->Cell(-345,10,'Fecha Edición:',0,0,'C');
	//Celdas
	$this->Cell(0,10,'Aprobó: Santiago Jiménez',0,0,'R');
	//Celdas
	$this->Cell(-200,10,'Elaboró: Natalia López Vásquez',0,0,'C');
	//Celdas
	$this->Cell(56,20,'01/12/06',0,0,'C');
	//Celdas
	$this->Cell(88,20,'Cargo: Coordinadora de Calidad',0,0,'C');
	//Celdas
	$this->Cell(70,20,'Cargo: Gerente General',0,0,'C');
	}
}

//Tabla coloreada
function FancyTable($header,$data)
{
    //Colores, ancho de línea y fuente en negrita
    $this->SetFillColor(255,0,0);
    $this->SetTextColor(255);
    $this->SetDrawColor(128,0,0);
    $this->SetLineWidth(.3);
    $this->SetFont('','B');
    //Cabecera
    $w=array(40,35,40,45);
    for($i=0;$i<count($header);$i++)
        $this->Cell($w[$i],7,$header[$i],1,0,'C',1);
    $this->Ln();
    //Restauración de colores y fuentes
    $this->SetFillColor(224,235,255);
    $this->SetTextColor(0);
    $this->SetFont('');
    //Datos
    $fill=0;
    foreach($data as $row)
    {
        $this->Cell($w[0],6,$row[0],'LR',0,'L',$fill);
        $this->Cell($w[1],6,$row[1],'LR',0,'L',$fill);
        $this->Cell($w[2],6,number_format($row[2]),'LR',0,'R',$fill);
        $this->Cell($w[3],6,number_format($row[3]),'LR',0,'R',$fill);
        $this->Ln();
        $fill=!$fill;
    }
    $this->Cell(array_sum($w),0,'','T');
}
$prueba1=4;
$idCliente=1;
$idEstReg="P";
$id=11;
$login="admin";
$cliente="AVON S.A";
$nombre="Frank Heiler Corrales Salazar";
$fechaInicia = "2008-09-01";
$fechaFinaliza = "2008-09-30";
$pdf=new PDF();
$pdf->SetFont('Arial','',11);
$pdf->AddPage();
//Linea de Información de Cliente
$pdf->Cell(0,8,'Cliente:                                          '.$cliente,0,0,'L');
//Salto de linea para el undeline
$pdf->Ln(1);
//Movimiento a la derecha
$pdf->Cell(55);
//Undeline
$pdf->Cell(100,5,' ','B',0,'L');
//Salto de linea para la siguiente información
$pdf->Ln(3);
$pdf->Cell(0,16,'Nombre:                                        '.$nombre,0,0,'L');
$pdf->Ln(1);
//Movimiento a la derecha
$pdf->Cell(55);
//Undeline
$pdf->Cell(100,9,' ','B',0,'L');
//Salto de linea para la siguiente información
$pdf->Ln(3);
$pdf->Cell(0,24,'Fecha inicial de reporte:               '.$fechaInicia,0,0,'L');
$pdf->Ln(1);
//Movimiento a la derecha
$pdf->Cell(55);
//Undeline
$pdf->Cell(100,13,' ','B',0,'L');
//Salto de linea para la siguiente información
$pdf->Ln(3);
$pdf->Cell(0,32,'Fecha final de reporte:                 '.$fechaFinaliza,0,0,'L');
$pdf->Ln(1);
//Movimiento a la derecha
$pdf->Cell(55);
//Undeline
$pdf->Cell(100,17,' ','B',0,'L');
//Salto de linea final
$pdf->Ln(30);
//Tabla
//Colores, ancho de línea y fuente en negrita
//$pdf->SetFillColor(255,0,0);
//$pdf->SetTextColor(255);
//$pdf->SetDrawColor(128,0,0);
$pdf->SetLineWidth(0.4);
$pdf->SetFont('','B');
//Cabecera
//Valores de ancho de tabla
$w=array(40,35,115);
//Array de Cabecera
$header=array('Fecha','Horas','Descripción de las actividades');
for($i=0;$i<count($header);$i++)
	$pdf->Cell($w[$i],7,$header[$i],1,0,'C');
$pdf->Ln();
//Información del reporte
$sqlReg = "select * from webcal_regns where cal_id = $id and cal_login = $login and cal_idEstReg = $idEstReg" ;
$resReg =@mysql_query($sqlReg);
while($filaReg=@mysql_fetch_array($resReg)) 
	{
	$fechaReg=date("Y-m-d",$filaReg[cal_date]);
	if($fechaReg >= $fechaInicia && $fechaReg <= $fechaFinaliza)
		{
		$detail=array($fechaReg,$filaReg["cal_time"],$filaReg["cal_description"]);
		$pdf->Cell($w[0],7,$fechaReg,1,0,'C');
		$pdf->Cell($w[1],7,$fila["cal_time"],1,0,'C');
		$pdf->Cell($w[2],7,$pdf->WriteHTML($fila["cal_description"]),1,0,'C');
		}
	}
$pdf->Output();
?>
PD: Antes me generaban error las lineas de mysql, les agregue el "@" y dejo de mostrarlo, alguien sabe esto k indica?

De antemano muchas gracias por su ayuda!
  #2 (permalink)  
Antiguo 04/09/2008, 11:27
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: Problema con FPDF y Consulta en BD

Hola Xhikito, cómo vas??

Pues el colocar el "@" a la consulta, lo que haces es evitar imprimir en pantalla el reporte sql, mas no corrige el error.

Si antes de mostraba errores mysql, quiere decir que tu consulta está mal hecha. Postéala para verla vale??

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #3 (permalink)  
Antiguo 04/09/2008, 11:30
 
Fecha de Ingreso: julio-2008
Mensajes: 12
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con FPDF y Consulta en BD

Gracias Carlx por responder

El codigo es el mismo expuesto ahi solo que sin los arrobas, y como ya con esa libreria FPDF no me muesttra errores en pantalla sino k me saca error de Acrobat, pos no se en k estoy fallando, aunke realizo la consulta externamente en otra pagina sin FPDF y me arroja datos sin problema, no se entonces k hacer :(
  #4 (permalink)  
Antiguo 04/09/2008, 11:37
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: Problema con FPDF y Consulta en BD

Lo que pasa es que no puedes usar "echo" en esa librería... la idea es que te lleves la consulta y la mires desde otro archivo php o si puedes directamente en mysql y descartes la posibilidad que tengas mal la consulta... Haz hecho eso??
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #5 (permalink)  
Antiguo 04/09/2008, 11:40
 
Fecha de Ingreso: julio-2008
Mensajes: 12
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con FPDF y Consulta en BD

Si, ya he hecho eso, la parte que te digo es el problema en esta seccion de codigo es esta

Código:
//Información del reporte
$sqlReg = "select * from webcal_regns where cal_id = $id and cal_login = $login and cal_idEstReg = $idEstReg" ;
$resReg =@mysql_query($sqlReg);
while($filaReg=@mysql_fetch_array($resReg)) 
	{
	$fechaReg=date("Y-m-d",$filaReg[cal_date]);
	if($fechaReg >= $fechaInicia && $fechaReg <= $fechaFinaliza)
		{
		$detail=array($fechaReg,$filaReg["cal_time"],$filaReg["cal_description"]);
		$pdf->Cell($w[0],7,$fechaReg,1,0,'C');
		$pdf->Cell($w[1],7,$fila["cal_time"],1,0,'C');
		$pdf->Cell($w[2],7,$pdf->WriteHTML($fila["cal_description"]),1,0,'C');
		}
	}
$pdf->Output();
El simple $filaReg normalmente ya me trae datos en otra pagina sin FPDF
  #6 (permalink)  
Antiguo 04/09/2008, 12:03
 
Fecha de Ingreso: julio-2008
Mensajes: 12
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con FPDF y Consulta en BD

No estoy usando echo en el codigo que usa el FPDF.

Ojala alguien me pueda ayudar con esto k me freno mi dllo.

Gracias de antemano!
  #7 (permalink)  
Antiguo 04/09/2008, 13:15
 
Fecha de Ingreso: julio-2008
Mensajes: 12
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con FPDF y Consulta en BD

Por lo visto nadie pudo ayudarme :(
  #8 (permalink)  
Antiguo 04/09/2008, 14:11
 
Fecha de Ingreso: julio-2008
Mensajes: 12
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con FPDF y Consulta en BD

Me lo resolvi yo mismo!!

Pequeño error que me demoro 3 horas el dllo!

No habia incluido las librerias de conexion de bd, asi como dificil hacer las consultas en ella :S
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 05:06.