Foros del Web » Programando para Internet » PHP »

ayuda con while creando PDF mediante php

Estas en el tema de ayuda con while creando PDF mediante php en el foro de PHP en Foros del Web. buenas a todos, estoy usando la clase fpdf para crear un pdf con los datos existentes en mi bd. tengo el script creado y funcionando, ...
  #1 (permalink)  
Antiguo 15/12/2008, 12:42
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
ayuda con while creando PDF mediante php

buenas a todos,

estoy usando la clase fpdf para crear un pdf con los datos existentes en mi bd. tengo el script creado y funcionando, pero se me ha generado una duda.

tengo un listado de usuarios registrados. tengo una tabla que se llama cursos, donde cada usuario puede estar inscrito en más de un curso (en esa bd cursos guardo el id del usuario).

claro, cuando muestro los registros en un php normal, lo hago en una tabla, y con el while muestro tantos registros como se quieran. pero aqui no se como hacerlo. he intentado hacer el while pero no me salgo. os pongo lo que tengo que me funciona, pero solo me muestra el primer curso:

Código:
$result2 = mysql_query("SELECT * FROM cursos WHERE idusuario='".$_GET['idusuario']."' "); 


//Comprobamos si el candidato tiene insertada experiencia laboral o no. en caso que no, mostramos que no tiene para evitar el error.

if (mysql_num_rows($result2) > 0) {

$resultados2 = mysql_fetch_array($result2);

$cursos= $row["fecha_curso"].', '.$row["nombre"].', '.$row["temario"];
}
else {
$cursos="No tiene insertados cursos";
}
y luego lo imprimo en el pdf la variable. compruebo que haya o no registros

Código:
$pdf->Cell(50,4,'CURSOS REALIZADOS',0,0,'L',1); 
$pdf->Ln(8);
$pdf->SetTextColor(0,0,0); 
$pdf->MultiCell(0,5,$cursos);
pero solo me muestra el primero. he probado un while pero no lo consigo, como podria hacerlo? que cuando se muetsre un curso, haga un salto de linea e inserte el otro?

saludos!
  #2 (permalink)  
Antiguo 15/12/2008, 13:00
 
Fecha de Ingreso: noviembre-2008
Ubicación: En algún lugar del disco duro.
Mensajes: 95
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: ayuda con while creando PDF mediante php

a ver si con esto te despejo un poco tu duda amigo

Código PHP:
require('../fpdf.php');

//Connect to your database
include("../conectar.php");//require ('../conectar.php');

//Create new pdf file
$pdf=new FPDF();

//Disable automatic page break
$pdf->SetAutoPageBreak(false);

//Add first page
$pdf->AddPage();

//set initial y axis position per page
$y_axis_initial 20;
$y_axis 25;

//print column titles for the actual page
$pdf->SetFillColor(220,220,220);
$pdf->SetTextColor(0,0,0);
$pdf->SetDrawColor(0,0,0);
$pdf->SetFont('Arial','B',8);
$pdf->SetY($y_axis_initial);
$pdf->SetX(7);
$pdf->Cell(40,6,'Cliente',1,0,'L',1);
$pdf->Cell(40,6,'Detalle',1,0,'L',1);
$pdf->Cell(30,6,'Banco',1,0,'L',1);
$pdf->Cell(20,6,'Abono',1,0,'L',1);
$pdf->Cell(15,6,'Factura',1,0,'L',1);
$pdf->Cell(30,6,'Factura Vence',1,0,'L',1);
$pdf->Cell(20,6,'Deuda',1,0,'L',1);

$y_axis $y_axis $row_height;

//Select the Products you want to show in your PDF file
$result=mysql_query('SELECT * FROM movimientos_cliente, clientes WHERE cli_nom = cli_nombre ORDER BY mov_id ASC')or die ( "Error en query: $sql, el error  es: " mysql_error() );

//initialize counter
$i 0;

//Set maximum rows per page
$max 35;

//Set Row Height
$row_height 6;

while(
$row mysql_fetch_array($result))
{
    
//If the current row is the last one, create new page and print column title
    
if ($i == $max)
    {
        
$pdf->AddPage();

       
//set initial y axis position per page
       //$y_axis_initial = 20;
       
$y_axis2 25;

        
//print column titles for the current page
        
$pdf->SetFillColor(220,220,220);
        
$pdf->SetTextColor(0,0,0);
        
$pdf->SetDrawColor(0,0,0);
        
$pdf->SetFont('Arial','B',8);
        
$pdf->SetY($y_axis2);
        
$pdf->SetX(7);
        
$pdf->Cell(40,6,'Cliente',1,0,'L',1);
        
$pdf->Cell(40,6,'Detalle',1,0,'L',1);
        
$pdf->Cell(30,6,'Banco',1,0,'L',1);
        
$pdf->Cell(20,6,'Abono',1,0,'L',1);
        
$pdf->Cell(15,6,'Factura',1,0,'L',1);
        
$pdf->Cell(30,6,'Factura Vence',1,0,'L',1);
        
$pdf->Cell(20,6,'Deuda',1,0,'L',1);
        
        
//Go to next row
        
$y_axis2 $y_axis2 $row_height;
        
        
//Set $i variable to 0 (first row)
        
$i 0;
    }

    
$cli_nom $row['cli_nom'];
    
$mov_detalle $row['mov_detalle'];
    
$mov_banco $row['mov_banco'];
    
$mov_abono $row['mov_abono'];
    
$mov_factura $row['mov_factura'];
    
$fecha_factura $row['fecha_factura'];
    
$deuda_cliente $row['deuda_cliente'];
    
    
$pdf->SetFillColor(255);
    
$pdf->SetY($y_axis);
    
$pdf->SetX(7);
    
$pdf->Cell(40,6,$cli_nom,1,0,'L',1);
    
$pdf->Cell(40,6,$mov_detalle,1,0,'L',1);
    
$pdf->Cell(30,6,$mov_banco,1,0,'L',1);
    
$pdf->Cell(20,6,$mov_abono,1,0,'L',1);
    
$pdf->Cell(15,6,$mov_factura,1,0,'L',1);
    
$pdf->Cell(30,6,$fecha_factura,1,0,'L',1);
    
$pdf->Cell(20,6,$deuda_cliente,1,0,'L',1);
    

    
//Go to next row
    
$y_axis $y_axis $row_height;
    
$i $i 1;
}

//mysql_close($link);

//Create file
$pdf->Output(); 
como te das cuenta consulto de dos tablas entonces lo que tienes que buscar que campos se relacionan en ambas tablas
  #3 (permalink)  
Antiguo 16/12/2008, 05:11
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Respuesta: ayuda con while creando PDF mediante php

muchas gracias mariosequeda,

la verdad es que he aplicado tu script al mio, y me ha funcionado a la perfección. solo una cosa, como yo tenia todo mi DINA4 cuadrado con los datos a mostrar, esta tabla que hemos creado la tengo que insertar en un lugar determinado. imagino que tendr´qque cuadrarlo a ojo, no? pero donde?

y otra cosa, hay alguna forma de que el registro que cargamos en una celda, en caso de ser más largo que la propia celda, haga un salto de linea?

saludos,

ferranWEB
  #4 (permalink)  
Antiguo 16/12/2008, 08:43
 
Fecha de Ingreso: noviembre-2008
Ubicación: En algún lugar del disco duro.
Mensajes: 95
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: ayuda con while creando PDF mediante php

pues amigo me imagino que si se puede cargar en la siguiente linea igual tu puedes modificar los valores para que te den el tamaño justo por ejemplo

antes:
Código PHP:
$pdf->Cell(40,6,'Detalle',1,0,'L',1); 
despues:
Código PHP:
$pdf->Cell(60,6,'Detalle',1,0,'L',1); 
si te das cuenta el primer valor es 40 y el siguiente es 60 o sea que da mucho mas espacio para un campo mas grande.

el único problema que he tenido es que cuando realizo la consulta y traigo los registros en la primera pagina me los imprime bien pero en la siguiente me los corre por completo y no he podido arreglar ese problema así que le encuentras solución por favor me avisas.
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:37.