Foros del Web » Programando para Internet » PHP »

FPDF -> como hacer UNA ficha por registro

Estas en el tema de FPDF -> como hacer UNA ficha por registro en el foro de PHP en Foros del Web. Hola a todos. antes que nada contarles que soy extremadamente novato en esto de lenguaje php y mysql.... el tema es que necesito crear archivos ...
  #1 (permalink)  
Antiguo 03/06/2009, 18:28
 
Fecha de Ingreso: diciembre-2008
Mensajes: 268
Antigüedad: 11 años, 1 mes
Puntos: 0
Exclamación FPDF -> como hacer UNA ficha por registro

Hola a todos.

antes que nada contarles que soy extremadamente novato en esto de lenguaje php y mysql.... el tema es que necesito crear archivos pdf (para lo cual uso la libreria fpdf), he logrado crear sin problemas "una" ficha con "un" registro de acuerdo a un dato consultado a MySql .

pero lo que quiero hacer, es que si existen 2 o MAS registros con una variable igual... me cree tantas paginas de pdf como registros encuentre (osea ... 1 pagina por registro)

El Form que cree es el siguiente:

<form action="ficha_fecha.php" method="post" name="form4" target="_blank" id="form4">
Buscar ficha - fecha
<label>
<select name="dia" id="dia">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
</label>
<label>
<select name="mes" id="mes">
<option value="01">Enero</option>
<option value="02">Febrero</option>
<option value="03">Marzo</option>
<option value="04">Abril</option>
<option value="05">Mayo</option>
<option value="06">Junio</option>
<option value="07">Julio</option>
<option value="08">Agosto</option>
<option value="09">Septiembre</option>
<option value="10">Octubre</option>
<option value="11">Noviembre</option>
<option value="12">Diciembre</option>
</select>
<select name="ano" id="ano">
<option value="2000">2000</option>
<option value="2001">2001</option>
<option value="2002">2002</option>
<option value="2003">2003</option>
<option value="2004">2004</option>
</select>
<input type="submit" name="Submit" value="Consultar" />
</label>
</form>

al seleccionar una fecha y dar click al botón, se me crea una ficha pdf (eso si es que el valor existe, pues de lo contrario me sale una pagina en blanco... lo cual supongo es tema de crer algun for o foreach.. pero aun no me dedico a eso... ). EL PROBLEMA, es que si existe más de un registro, con la misma fecha seleccionada, me crea solo la primera ficha, una sola, con los datos del primer registro encontrado. y lo que quiero es que si encuentra 2 o más registros, me cree por ende un pdf con 2 o mas hojas (1 por registro)

el archivo ficha_fecha.php es el siguiente:

<?php
require('fpdf.php');

$link = mysql_connect("localhost","user","password") or die ("Lo siento, no se pudo conectar con el servidor") ;
mysql_select_db("prueba", $link) or die ("problemas en la conexion a la base de datos");
$dia = $_POST['dia'];
$mes = $_POST['mes'];
$ano = $_POST['ano'];
$fecha = $ano . "-" . $mes . "-" . $dia;
$result = mysql_query("SELECT * FROM test1 Where fecha_obs='$fecha'",$link);
$row=mysql_fetch_array($result);

$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(80,10,$row[0],0,1,'C');
$pdf->Cell(80,10,$row[1],0,1,'L');
$pdf->Cell(80,10,$row[2],0,1,'C');
$pdf->Cell(80,10,$row[3],0,1,'C');
$pdf->Cell(80,10,$row[4],0,1,'C');
$pdf->Cell(80,10,$row[5],0,1,'C');
$pdf->Cell(80,10,$row[6],0,1,'C');
$pdf->Cell(80,10,$row[7],0,1,'C');
$pdf->Cell(80,10,$row[8],0,1,'C');
$pdf->Cell(80,10,$fecha,0,1,'C');
$pdf->Output();
?>

espero me ayuden... gracias !!!
  #2 (permalink)  
Antiguo 03/06/2009, 18:57
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 10 años, 9 meses
Puntos: 19
Respuesta: FPDF -> como hacer UNA ficha por registro

si sabes como extraer varios registros de una consulta no se te deberia de dificultar por que la logica seria la misma o sea algo asi:


$pdf=new FPDF();
while($row=mysql_fetch_array($result))
{
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(80,10,$row[0],0,1,'C');
$pdf->Cell(80,10,$row[1],0,1,'L');
$pdf->Cell(80,10,$row[2],0,1,'C');
$pdf->Cell(80,10,$row[3],0,1,'C');
$pdf->Cell(80,10,$row[4],0,1,'C');
$pdf->Cell(80,10,$row[5],0,1,'C');
$pdf->Cell(80,10,$row[6],0,1,'C');
$pdf->Cell(80,10,$row[7],0,1,'C');
$pdf->Cell(80,10,$row[8],0,1,'C');
$pdf->Cell(80,10,$fecha,0,1,'C');
}
$pdf->Output();
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #3 (permalink)  
Antiguo 03/06/2009, 19:10
 
Fecha de Ingreso: diciembre-2008
Mensajes: 268
Antigüedad: 11 años, 1 mes
Puntos: 0
MONSTRUO !! GRACIAS !!... como dije al principio.. soy MUUUY nuevo en esto.. recien llevo 1 mes entendiendo (y tratando de entender) php, mysql, fpdf y todo lo que significa el lenguaje.... solo hacia paginas estaticas antes...

PERO... cuando hago lo que me recomiendas.. me creo el pdf pero con 1 registro menos de los que tengo en mysql, o sea.. tengo 4 registros con igual fecha, pero me arroja los 3 ultimos.. porque es esto ?!?!?!

me sigue saliendo 1 registro menos...

Última edición por GatorV; 03/06/2009 a las 20:32
  #4 (permalink)  
Antiguo 03/06/2009, 20:30
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 10 años, 9 meses
Puntos: 19
Respuesta: FPDF -> como hacer UNA ficha por registro

umm pues con la consulta que tienes te deben de salir los registros que necesitas, ya isiste una prueba en mysql de tu consulta para ver si ahi te da todos los resultados???
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #5 (permalink)  
Antiguo 03/06/2009, 20:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 8 meses
Puntos: 2135
Respuesta: FPDF -> como hacer UNA ficha por registro

Otra opción es que estes llamando a mysql_fetch_array antes y por eso te descarga una fila.

Saludos.
  #6 (permalink)  
Antiguo 03/06/2009, 20:34
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 10 años, 9 meses
Puntos: 19
Respuesta: FPDF -> como hacer UNA ficha por registro

por eso digo que es mejor que postees el codigo de tu php que genera el pdf (ponl o entre etiquetas de php)
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #7 (permalink)  
Antiguo 04/06/2009, 12:25
 
Fecha de Ingreso: diciembre-2008
Mensajes: 268
Antigüedad: 11 años, 1 mes
Puntos: 0
Exclamación 1 regitro menos - php . Mysql - fpdf

..borrado por duplicacion

Última edición por icarocu; 04/06/2009 a las 14:48 Razón: duplicado
  #8 (permalink)  
Antiguo 04/06/2009, 12:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 8 meses
Puntos: 2135
Respuesta: FPDF -> como hacer UNA ficha por registro

Temas unidos porfavor NO dupliques temas.

El problema lo tienes ahi, haces una llamada a $row=mysql_fetch_array($result); antes del while y eso descarga un valor.

Saludos.
  #9 (permalink)  
Antiguo 04/06/2009, 13:14
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 10 años, 9 meses
Puntos: 19
Respuesta: FPDF -> como hacer UNA ficha por registro

tienes razon GatorV, asi es icarocu tienes un mysql_fetch_array antes que hace que descargue el primer registro.
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #10 (permalink)  
Antiguo 04/06/2009, 14:53
 
Fecha de Ingreso: diciembre-2008
Mensajes: 268
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: FPDF -> como hacer UNA ficha por registro

Cita:
Iniciado por By_George Ver Mensaje
por eso digo que es mejor que postees el codigo de tu php que genera el pdf (ponl o entre etiquetas de php)
estimados.. este es el codigo php que genera el pdf... como dicen decberia ser ???? disulpan mi ignrancia, pero soy un novato
<?php
require('fpdf.php');

$link = mysql_connect("localhost","NICK","PASS") or die ("Lo siento, no se pudo conectar con el servidor") ;
mysql_select_db("prueba", $link) or die ("problemas en la conexion a la base de datos");
$sol=$_POST['sol'];
$result = mysql_query("SELECT * FROM test1 Where sol='$sol' ORDER BY id",$link);
$row=mysql_fetch_array($result);

$pdf=new FPDF();
while($row=mysql_fetch_array($result))
{
$pdf->AddPage();
$pdf->SetFont('Arial','B',12);
$pdf->Cell(80,10,$row[0],0,1,'C');
$pdf->Cell(80,10,$row[1],0,1,'L');
$pdf->Cell(80,10,$row[2],0,1,'C');
$pdf->Cell(80,10,$row[3],0,1,'C');
$pdf->Cell(80,10,$row[4],0,1,'C');
$pdf->Cell(80,10,$row[5],0,1,'C');
$pdf->Cell(80,10,$row[6],0,1,'C');
$pdf->Cell(80,10,$fecha,0,1,'C');
}
$pdf->Output();
?>


GRACIAS
  #11 (permalink)  
Antiguo 04/06/2009, 15:33
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 10 años, 9 meses
Puntos: 19
Respuesta: FPDF -> como hacer UNA ficha por registro

se te dice que tienes dos veces el mysql_fetch_array por eso se descarga un registro antes

require('fpdf.php');

$link = mysql_connect("localhost","NICK","PASS") or die ("Lo siento, no se pudo conectar con el servidor") ;
mysql_select_db("prueba", $link) or die ("problemas en la conexion a la base de datos");
$sol=$_POST['sol'];
$result = mysql_query("SELECT * FROM test1 Where sol='$sol' ORDER BY id",$link);
$row=mysql_fetch_array($result); //elimina esta linea

$pdf=new FPDF();
while($row=mysql_fetch_array($result))
{
$pdf->AddPage();
$pdf->SetFont('Arial','B',12);
$pdf->Cell(80,10,$row[0],0,1,'C');
$pdf->Cell(80,10,$row[1],0,1,'L');
$pdf->Cell(80,10,$row[2],0,1,'C');
$pdf->Cell(80,10,$row[3],0,1,'C');
$pdf->Cell(80,10,$row[4],0,1,'C');
$pdf->Cell(80,10,$row[5],0,1,'C');
$pdf->Cell(80,10,$row[6],0,1,'C');
$pdf->Cell(80,10,$fecha,0,1,'C');
}
$pdf->Output();

esa linea es la que esta demas para eso esta el while que es el que se encarga de mostrar todos los registros
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #12 (permalink)  
Antiguo 04/06/2009, 15:44
 
Fecha de Ingreso: diciembre-2008
Mensajes: 268
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: FPDF -> como hacer UNA ficha por registro

MUCHISIMAS GRACIAS By_George. :):):):) .. soy un ignorante. .. les advertí jaja.. si se que que me advirtieron dos veces que tenia el "mysql_fetch_array", solo que no entendía que significaba el mysql_fetch_array (sus alcances) y que HABIA QUE ELIMINIAR ESA LINEA... espero se calme despues de encontrarse con personas TAN ignorantes como yo... pero de apoco ire aprendiendo... y espero aportar y ayudar como tan notablemente Ud. y Don GatorV han hecho conmigo... nuevamente gracias a ambos y exitos
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:55.