Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/02/2014, 08:08
chouki
 
Fecha de Ingreso: enero-2008
Mensajes: 88
Antigüedad: 16 años, 10 meses
Puntos: 0
mostrar los datos de una consulta en factura en pdf

hola muy buenas a todos
muxas gracias a la gente que dedica parte de su tiempo a resolvernos las dudas.
quiero generar una factura en pdf de los pedidos de los clientes en un fichero pdf
lo que pasa si un cliente tiene más de un pedido no llego a generar los pedidos enteros o sea si tiene más de uno (dos o 3 pedidos) me muestra solamente uno en el cuadro del pdf
sabiendo que tengo la siguiente estructura de la base de datos:
orders tiene los siguientes campos(orderid(PK),customerid,etc... cito solamente los campos importantes).
orders_items tiene los siguientes campos(orderitems(PK),orderid(FK), isbn item_price,quantity)
articulos(isbn(PK),author title,catid,price,description,imagen)
os adjunto parte del codigo donde tengo que mostrar los datos en pdf:
Código PHP:
   define('FPDF_FONTPATH','font/');
    require(
'./fpdf/mysql_table.php');
    include(
"./fpdf/comunes.php");
    include (
"./funciones/fechas.php");
    
$c=mysql_pconnect("localhost""""");
    if (!
$c)
      die( 
'Error'mysql_error() );
    
mysql_select_db("bd",$c) or die(mysql_error());

    
$codfactura=$_POST["codcliente"];
   
    
$pdf=new PDF();
    
$pdf->Open();
    
$pdf->AddPage();
    
$pdf->Ln(10);

     
//ahora mostramos las lneas de la factura
    
$pdf->Ln(10);
    
$pdf->Cell(1);

    
$pdf->SetFillColor(255,191,116);
    
$pdf->SetTextColor(0);
    
$pdf->SetDrawColor(0,0,0);
    
$pdf->SetLineWidth(.2);
    
$pdf->SetFont('Arial','B',8);
    

    
    
$pdf->Cell(40,4,"Autor",1,0,'C',1);
    
$pdf->Cell(80,4,"Titulo",1,0,'C',1);
    
$pdf->Cell(20,4,"Precio",1,0,'C',1);
    
$pdf->Cell(15,4,"Cantidad",1,0,'C',1);

    
$pdf->Ln(4);


    
$pdf->SetFillColor(224,235,255);
    
$pdf->SetTextColor(0);
    
$pdf->SetDrawColor(0,0,0);
    
$pdf->SetLineWidth(.2);
    
$pdf->SetFont('Arial','',8);
    

    
$consulta1 "Select * from orders,order_items where orders.orderid=order_items.orderid and orders.customerid='$codfactura'";
   
    
$r=mysql_query($consulta1,$c) or die (mysql_error());
    
    
//si hago en echo del numero de filas se me muestra el numero correcto o sea 
    // si un cliente tiene un pedido sale 1 si tiene más de uno me muestra el numero 
   // correspondiente
    
$numero_filas mysql_num_rows($r);

    

    
$codlibro=mysql_result($r,0,"isbn");

    
$contador=1;
    
$lineas=1;

    
/* 
      supuestamente en este for recorro los campos devueltos en la base de datos
       para ir mostrándolos en el cuadro de la factura.
    */
    
for($i=1;$i<=$numero_filas;$i++)
    {
         
$pdf->Cell(1);

         
$codlibro=mysql_result($r,0,"isbn") or die (mysql_error());
         
$sel_libro="SELECT * FROM articulos WHERE isbn='$codlibro'";

         
$rs_libro=mysql_query($sel_libro) or die (mysql_error());

         
$pdf->Cell(40,4,mysql_result($rs_libro,0,"author"),'LR',0,'L');

         
$acotado =substr(mysql_result($rs_libro,0,"title"), 0,40);

         
$pdf->Cell(80,4,$acotado,'LR',0,'L');

         
$precio2number_format(mysql_result($rs_libro,0,"price"),2,",",".");
         
$pdf->Cell(20,4,$precio2,'LR',0,'R');

         
$pdf->Cell(15,4,mysql_result($r,0,"quantity"),'LR',0,'C');


    }

     while (
$contador<35)
    {
      
$pdf->Cell(1);
      
$pdf->Cell(40,4,"",'LR',0,'C');
      
$pdf->Cell(80,4,"",'LR',0,'C');
      
$pdf->Cell(20,4,"",'LR',0,'C');
      
$pdf->Cell(15,4,"",'LR',0,'C');

      
$pdf->Ln(4);
      
$contador=$contador +1;
    }


      
$pdf->Cell(1);
      
$pdf->Cell(40,4,"",'LRB',0,'C');
      
$pdf->Cell(80,4,"",'LRB',0,'C');
      
$pdf->Cell(20,4,"",'LRB',0,'C');
      
$pdf->Cell(15,4,"",'LRB',0,'C');
      
$pdf->Ln(4);

     
$pdf->Output();
     
header('Content-type: application/pdf'); 
espero vuestra ayuda y vuestros consejos.
muchisima gracias de antemano
sal2