Foros del Web » Programando para Internet » PHP »

necesito ayuda para impresion de resultados

Estas en el tema de necesito ayuda para impresion de resultados en el foro de PHP en Foros del Web. Hola amigos estoy creando un script para crear pdf en php pero me pierdo en una inpresion lo que sucede es lo siguiente cuando alguine ...
  #1 (permalink)  
Antiguo 12/05/2004, 16:33
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
necesito ayuda para impresion de resultados

Hola amigos estoy creando un script para crear pdf en php pero me pierdo en una inpresion lo que sucede es lo siguiente cuando alguine realiza una compra estos datos se cargan en la basede datos en la tabla boletas con los siguientes datos:
id, codigo, precio,cantidad, pero sucede que si la persona ha comprado mas de un aticulo se guarda en la tabla en dos records distintos ejemplo:
id codigo cantidad precio
123 125df 1 100
123 45jk 3 400

como pueden ver se repite la id en la tabla pero los otros datos cambian ahora hago la consulta a la base de datos seleccionando los records de la boleta con id 123 realizo el mysql_fetch_array pero en la hora de imprimir los resultados solo me imprime uno y no todos los records ¿como puedo resolver este problema? he tratado con un foreach pero no me resulto.
  #2 (permalink)  
Antiguo 12/05/2004, 16:48
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 15 años, 10 meses
Puntos: 43
Hola

recuerda poner el mysql_fetch_array dentro de un WHILE

Salu2!
  #3 (permalink)  
Antiguo 12/05/2004, 17:00
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
mmmm al hacer el mysql_fetch_array me muestra dos vecez el mismo dato :(
  #4 (permalink)  
Antiguo 12/05/2004, 17:07
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 15 años, 10 meses
Puntos: 43
hola!!!

prueba si funciona con esto

Código PHP:
$sql=mysql_query("Select * from tu tabla Where id=123");

if(
$row=mysql_fetch_array($sql)){

do{
 echo 
$row['id'];
 echo 
$row['codigo'];
 echo 
$row['precio'];
 echo 
$row['cantidad'];
 echo 
"<br>";
}while(
mysql_fetch_array($sql));


seria mejor si pusieras tu codigo para poder ayudarte

Salu2!

Última edición por Genetix; 12/05/2004 a las 17:08
  #5 (permalink)  
Antiguo 12/05/2004, 17:15
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
<?php
define('FPDF_FONTPATH','font/');
require('fpdf.php');
require("funciones/connect.php");
$numero=$_POST["boleta"];
class PDF extends FPDF
{
//Cabecera de página
function Header()
{
$this->setfont('arial','b',10);
$this->cell(0,10,'SEMINARIO PONTIFICIO DE SANTIAGO',0,0,'C');
$this->ln(5);
$this->cell(0,10,'LIBRERIA',0,0,'C');
$this->ln(20);
}
//Pie de página
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,'Seminario Pontificio Mayor de Santiago - Libreria.',0,0,'C');
$this->ln(4);
$this->Cell(0,10,'Av. Walker Martínez 2020, La Florida, Santiago - Casilla 3-D - Teléfono: 4883800 - Fax: 4883811',0,0,'C');
}
}
//Creación del objeto de la clase heredada
$pdf=new PDF();
$pdf->Open();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->setfont('arial','',10);
$pdf->setx(25);
$pdf->Cell(30,10,'Comprador:',0,0,'R');
$string="select id,id_lib,cantidad,precio,rut,total,descuento,modo _pago,cheques,fecha,status from boletas where id='$numero'";
$resp=mysql_query($string,$link);
$rows=mysql_fetch_array($resp);
$nombre="select ap_paterno,ap_materno,nombres from clientes where rut='$rows[rut]'";
$resp_n=mysql_query($nombre,$link);
$r_n=mysql_fetch_array($resp_n);
$cliente=$r_n["nombres"]." ".$r_n["ap_paterno"]." ".$r_n["ap_materno"];
$pdf->setx(70);
$pdf->Cell(30,10,''.$cliente.'',0,0,'L');
$pdf->ln(6);
$pdf->setx(25);
$pdf->Cell(30,10,'Fecha de Compra:',0,0,'R');
$cambio=explode("-",$rows["fecha"]);
$fecha=$cambio[2]."-".$cambio[1]."-".$cambio[0];
$pdf->setx(70);
$pdf->Cell(30,10,''.$fecha.'',0,0,'L');
$pdf->ln(6);
$pdf->setx(25);
$pdf->Cell(30,10,'Descuento Aplicado:',0,0,'R');
$pdf->setx(70);
$pdf->Cell(20,10,''.$rows["descuento"].'',0,0,'L');
$pdf->ln(6);
$pdf->setx(25);
$pdf->Cell(30,10,'Modo de Pago:',0,0,'R');
$pdf->setx(70);
$pdf->Cell(20,10,''.$rows["modo_pago"].'',0,0,'L');
$pdf->ln(6);
$pdf->setx(25);
$pdf->Cell(30,10,'Cantidad de Cheques:',0,0,'R');
$pdf->setx(70);
$pdf->Cell(20,10,''.$rows["cheques"].'',0,0,'L');
if($rows["status"]=='cancelar'){
$pdf->ln(6);
$pdf->setx(25);
$pdf->Cell(30,10,'Status Boleta:',0,0,'R');
$pdf->setx(70);
$pdf->Cell(20,10,'Cancelada',0,0,'L');
}else{
$pdf->ln(6);
$pdf->setx(25);
$pdf->Cell(30,10,'Status Boleta:',0,0,'R');
$pdf->setx(70);
$pdf->Cell(20,10,'Adeudada',0,0,'L');
}
$pdf->ln(20);
$pdf->setx(60);
$pdf->Cell(20,6,'Cantidad',1,0,'C');
$pdf->setx(80);
$pdf->Cell(50,6,'Código Producto',1,0,'C');
$pdf->setx(130);
$pdf->Cell(30,6,'Precio de Venta',1,0,'C');
$array="select id_lib,cantidad,precio from boletas where id='$numero'";
$resp_array=mysql_query($array,$link);
while($rows_array=mysql_fetch_array($resp_array)){
$pdf->ln(6);
$pdf->setx(60);
$pdf->Cell(20,6,''.$rows_array["cantidad"].'',1,0,'C');
$pdf->setx(80);
$pdf->Cell(50,6,''.$rows_array["id_lib"].'',1,0,'C');
$pdf->setx(130);
$pdf->Cell(30,6,''.$rows_array["precio"].'',1,0,'C');
}
$pdf->ln(6);
$pdf->setx(80);
$pdf->Cell(30,6,'Total Boleta:',1,0,'C');
$pdf->setx(110);
$pdf->Cell(50,6,''.$rows["total"].'',1,0,'C');
$pdf->Output();
?>

ok este es el código
  #6 (permalink)  
Antiguo 12/05/2004, 17:27
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
aún con este código sigue igual:

$array="select id_lib,cantidad,precio from boletas where id='$numero'";
$resp_array=mysql_query($array,$link);
if($rows_array=mysql_fetch_array($resp_array)){
do{$pdf->ln(6);
$pdf->setx(60);
$pdf->Cell(20,6,''.$rows_array["cantidad"].'',1,0,'C');
$pdf->setx(80);
$pdf->Cell(50,6,''.$rows_array["id_lib"].'',1,0,'C');
$pdf->setx(130);
$pdf->Cell(30,6,''.$rows_array["precio"].'',1,0,'C');
}while(mysql_fetch_array($resp_array));
}
  #7 (permalink)  
Antiguo 13/05/2004, 13:38
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
Alguien más me podría prestar ayuda
  #8 (permalink)  
Antiguo 14/05/2004, 07:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cada llamada de mysql_fetch_array .. obtiene un resultado de tu consulta y mueve el puntero a la siguiente posición de la consulta realizada y resultados obtenidos.

Si tienes dos registros que arroja la consulta .. al usar la primera vez mysql_fech_array en tu:

if($rows_array=mysql_fetch_array($resp_array)){

el while() siguiente que usa mysql_fetch_array() va a obtener desde el nº de resultado 1 al final ...

Si el objetivo de ese condicional (IF) es ver si tu consulta te arrojó algún resultado (>0) .. puedes usar la función:

mysql_num_rows()


Código PHP:
$array="select id_lib,cantidad,precio from boletas where id='$numero'";
$resp_array=mysql_query($array,$link);

if(
mysql_num_rows($resp_array) > 0){

while(
mysql_fetch_array($resp_array));

$pdf->ln(6);
$pdf->setx(60);
$pdf->Cell(20,6,''.$rows_array["cantidad"].'',1,0,'C');
$pdf->setx(80);
$pdf->Cell(50,6,''.$rows_array["id_lib"].'',1,0,'C');
$pdf->setx(130);
$pdf->Cell(30,6,''.$rows_array["precio"].'',1,0,'C');
}

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 19:08.