Foros del Web » Programando para Internet » PHP »

FPDF y consultas

Estas en el tema de FPDF y consultas en el foro de PHP en Foros del Web. Hola a todos! Tengo hecha una consulta a través de un formulario, lo que quiero hacer es tener la opción de imprimir un pdf según ...
  #1 (permalink)  
Antiguo 18/05/2010, 07:23
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
FPDF y consultas

Hola a todos!

Tengo hecha una consulta a través de un formulario, lo que quiero hacer es tener la opción de imprimir un pdf según la consulta que se haga.

Para esto la idea es implementar fpdf, o sea que por un lado pretendo hacer la consulta y que la impresión sea por pantalla y por otro lado que esa misma consulta se vuelque a un pdf.

Lo que no se es como "capturar" esos datos para el pdf, supongo que tendre que crear un archivo aparte, pero no se muy bien como hacerlo.

Espero que me puedan ayudar.
Muchas gracias! :)


Formulario
Código HTML:
<form action="" method="POST">
<table width="500" height="150" border="0" align="center" class="tblformprof" cellspacing="5" cellpadding="5">
  
  <tr>
    <td class="izq">Apellido</td>
    <td><label>
      <input type="text" name="apellido" id="apellido" size="25">
    </label></td>
    <td class="izq">Ciudad</td>
    <td><label>
      <input type="text" name="ciudad" id="ciudad" size="20">
    </label></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><label>
      <div align="center">
        <input class="boton" type="submit" name="button" id="button" value="Buscar">
        </div>
    </label></td>
    <td>&nbsp;</td>
    <td><label>
      <div align="left">
        <input class="boton"type="reset" name="button2" id="button2" value="Borrar" />
        </div>
    </label></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
   <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td colspan="2"><a href="imprimir.php" target="_blank">Generar PDF</a></td>
    </tr>
</table>
</form> 

Búsqueda

Código PHP:
<?php
//conecta a la base
require ("php/conectar_db.php");


if (isset(
$_POST['apellido']))  

    if (
$_SESSION['buscarapellido'] != $_POST['apellido']) 
    
$_SESSION['buscarapellido'] = $_POST['apellido'];  

if (isset(
$_POST['ciudad']))  

    if (
$_SESSION['buscarciudad'] != $_POST['ciudad']) 
    
$_SESSION['buscarciudad'] = $_POST['ciudad'];  


$_pagi_sql "SELECT * FROM tb_profesionales WHERE 1 = 1";


if (
$_SESSION['buscarapellido'] != "")  
{
    
//cuando todos los campos estan vacios excepto APELLIDO
    
$_pagi_sql $_pagi_sql." and  profApellidos LIKE '".mysql_real_escape_string($_SESSION['buscarapellido'])."%'";
}

if (
$_SESSION['buscarciudad'] != "")
{
    
//cuando todos los campos estan vacios excepto CIUDAD
    
$_pagi_sql $_pagi_sql." and  profCiudad LIKE '%".mysql_real_escape_string($_SESSION['buscarciudad'])."%'";
}

...
...


$_pagi_cuantos 6;
$_pagi_nav_num_enlaces 5;

$_pagi_propagar = array("apellido, ciudad");
$_pagi_result mysql_query($_pagi_sql$Link);
include(
"php/paginator.inc.php");


echo 
"<p class='resultado'><b>Resultado(s):</b> ".$_pagi_info."</p>"

while (
$Row mysql_fetch_array ($_pagi_result)) {


    echo 
"<table width='523' border='0' class='tblbuscarprof' align='center'>";
    echo 
" <tr>";
    echo 
" <td colspan='2'><img src='images/linea.jpg' width='523' height='12' /></td>";
    echo 
" </tr>";
    echo 
" <tr>";
    echo 
" <td colspan='2'><img src='images/circitem.jpg' width='15' height='14'/> ".utf8_encode("$apellido")." ".utf8_encode("$nombre")."</td>";
    echo 
" </tr>";        
    echo 
"</table> \n";        
}
echo 
"<br>";
echo 
"<p class='paginar'>".$_pagi_navegacion."</p>";


//cierra la base
mysql_close ($Link);

?>
__________________
Saludos!!!
Maru.-
  #2 (permalink)  
Antiguo 18/05/2010, 07:29
 
Fecha de Ingreso: febrero-2010
Ubicación: /home/México
Mensajes: 57
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: FPDF y consultas

una opcion puede ser:
en tu href enviarle el id de los datos a imprimir o solo la clave primaria y en el fpdf hacer la consulta de ese id y mostrar los resultados

Código:
href="imprimir.php?id=$id"
y recibirlo como get

Código:
$id=$_GET[id];
a partir de ahi haces la consulta, espero haberte ayudado, saludos

x cierto...te funciona el paginador??????
  #3 (permalink)  
Antiguo 18/05/2010, 08:25
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: FPDF y consultas

Gracias por responder m0m0o!!!

Hice una prueba con lo que me pasaste, pero no funciono probablemente me este confundiendo en algo.

Dentro del mismo archivo php tengo el código en el siguiente orden:
1) El formulario que hace la búsqueda por POST
2) El enlace que generaría el PDF (podría cambiarlo de lugar, no es problema)
3) El código php que hace la consulta

el error que me da es:

Notice: Use of undefined constant apellido - assumed 'apellido' in C:\wamp\www\web\imprimir.php on line 2

Notice: Undefined index: apellido in C:\wamp\www\web\imprimir.php on line 2
FPDF error: Some data has already been output, can't send PDF file

En ese caso probé con apellido pero con el id también me sale lo mismo.

En cuanto a tu pregunta, sí el paginator funciona bien, en ese ejemplo que puse independientemente de la búsqueda que realices supongo que te podrá servir.
__________________
Saludos!!!
Maru.-
  #4 (permalink)  
Antiguo 18/05/2010, 09:32
 
Fecha de Ingreso: febrero-2010
Ubicación: /home/México
Mensajes: 57
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: FPDF y consultas

si hiciste lo que te dije me pregunto si fue con codigo php, es decir:

Código:
<? echo "<a href='imprimir.php?id=$elIdTuVariableIndice' ";?>
esto es independientemente de que el formulario envie en post, ya que no lo estamos ocupando, yo me centro en tu link que redirige a una pagina para imprimir y recibirlo como get como habia comentado, yo lo he usado sin problemas.

ahora que quieres imprimir?..veo que tienes un form, pero no veo la "consulta" que dices quieres imprimir pues de ahi tomas el valor para $elIdTuVariableIndice

saludos :)
  #5 (permalink)  
Antiguo 18/05/2010, 09:53
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: FPDF y consultas

La consulta es esta

Código PHP:
<?php 
//conecta a la base 
require ("php/conectar_db.php"); 


if (isset(
$_POST['apellido']))   
{  
    if (
$_SESSION['buscarapellido'] != $_POST['apellido'])  
    
$_SESSION['buscarapellido'] = $_POST['apellido'];   
}  
if (isset(
$_POST['ciudad']))   
{  
    if (
$_SESSION['buscarciudad'] != $_POST['ciudad'])  
    
$_SESSION['buscarciudad'] = $_POST['ciudad'];   
}  

$_pagi_sql "SELECT * FROM tb_profesionales WHERE 1 = 1"


if (
$_SESSION['buscarapellido'] != "")   

    
//cuando todos los campos estan vacios excepto APELLIDO 
    
$_pagi_sql $_pagi_sql." and  profApellidos LIKE '".mysql_real_escape_string($_SESSION['buscarapellido'])."%'"


if (
$_SESSION['buscarciudad'] != ""

    
//cuando todos los campos estan vacios excepto CIUDAD 
    
$_pagi_sql $_pagi_sql." and  profCiudad LIKE '%".mysql_real_escape_string($_SESSION['buscarciudad'])."%'"


... 
... 


$_pagi_cuantos 6
$_pagi_nav_num_enlaces 5

$_pagi_propagar = array("apellido, ciudad"); 
$_pagi_result mysql_query($_pagi_sql$Link); 
include(
"php/paginator.inc.php"); 


echo 
"<p class='resultado'><b>Resultado(s):</b> ".$_pagi_info."</p>";  

while (
$Row mysql_fetch_array ($_pagi_result)) { 


    echo 
"<table width='523' border='0' class='tblbuscarprof' align='center'>"
    echo 
" <tr>"
    echo 
" <td colspan='2'><img src='images/linea.jpg' width='523' height='12' /></td>"
    echo 
" </tr>"
    echo 
" <tr>"
    echo 
" <td colspan='2'><img src='images/circitem.jpg' width='15' height='14'/> ".utf8_encode("$apellido")." ".utf8_encode("$nombre")."</td>"
    echo 
" </tr>";         
    echo 
"</table> \n";         

echo 
"<br>"
echo 
"<p class='paginar'>".$_pagi_navegacion."</p>"


//cierra la base 
mysql_close ($Link); 

?>
Estos resultados son los que se imprimen en pantalla.
Estos mismos resultados son los que quiero volcar al pdf.
__________________
Saludos!!!
Maru.-
  #6 (permalink)  
Antiguo 18/05/2010, 10:03
 
Fecha de Ingreso: febrero-2010
Ubicación: /home/México
Mensajes: 57
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: FPDF y consultas

entonces si son varios registros puedes agregar hasta abajo de
Código:
echo "<p class='paginar'>".$_pagi_navegacion."</p>";
un boton que envie a la pagina imprimir y en esa pagina imprimir vuelves a ejecutar tu consulta y a vaciarlos con el while, usa esta clase

Código:
<?php
include ("conexion.php");
include('class.ezpdf.php');
$conecction=conectar();
$sql="select * from inventario";
$pdf =& new Cezpdf('a4');
$pdf->selectFont('fonts/Times-Roman.afm');
$datacreator = array (
                    'Title'=>'Ejemplo PDF',
                    'Author'=>'unijimpe',
                    'Subject'=>'PDF con Tablas',
                    'Creator'=>'[email protected]',
                    'Producer'=>'http://blog.unijimpe.net'
                    );
$pdf->addInfo($datacreator);
$r2=mysql_query($sql,$conecction);
$suma=0;
while($x=mysql_fetch_object($r2)){ 
 $data[]=array('cp'=>$x->claveprod,'nom'=>$x->nombreprod,'mar'=>$x->marca,'cat'=>$x->categoria,'cant'=>$x->cantidad,'pc'=>$x->precioc,'pv'=>$x->preciov);
$suma=$suma+1;
}
$titles = array('cp'=>'<b>Clave</b>', 'nom'=>'<b>Nombre</b>', 'mar'=>'<b>Marca</b>', 'cat'=>'<b>Categoria</b>', 'cant'=>'<b>Existencia</b>', 'pc'=>'<b>Precio C</b>', 'pv'=>'<b>Precio V</b>');
$pdf->ezText("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReporte General productos\n\n",16);
$pdf->ezTable($data,$titles,'',$options );
$pdf->ezText("\n\n\n",5);
$pdf->setColor(0.2,0.2,0.2);
$pdf->ezText("<b>Fecha:</b> ".date("d/m/Y"),10);
$re=0;
while($re<$suma){
$pdf->$data[$re];
$re=$re+1;}
$pdf->ezStream();
?>
descargate el class.ezpdf.php ;)

saludos
  #7 (permalink)  
Antiguo 18/05/2010, 10:39
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: FPDF y consultas

Disculpa que te moleste de nuevo, pero de todas maneras esas variables las tendría que pasar de algún modo al crear el pdf y eso es lo que no se como hacer ni tampoco encontré un ejemplo.

Siempre serán resultados diferentes los que se generen.
Es decir si yo hago una búsqueda con el apellido Perez y en pantalla se imprime
Perez Juan...
Perez Ricardo...
Perez Ana...

Eso mismo debo pasar al PDF, y así con cualquier búsqueda que se haga.

Igual muchas gracias por tu ayuda :)
__________________
Saludos!!!
Maru.-
  #8 (permalink)  
Antiguo 18/05/2010, 14:54
 
Fecha de Ingreso: febrero-2010
Ubicación: /home/México
Mensajes: 57
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: FPDF y consultas

por eso te digo vuelve a ejecutar la consulta :) , mira la cuarta linea del codigo de arriba

Código:
$sql="select * from inventario";
ahi va tu consulta y ya solo vacias el while, no tienes que pasar parametros mas que si utilizas algun criterio pues mandalos ccon el link ?criterio=$criterio, para ocuparlos en tu consulta si son varios anidalos con un &

saludos
  #9 (permalink)  
Antiguo 27/05/2010, 08:19
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: FPDF y consultas

Gracias por tu ayuda m0m0o!
Pude resolverlo finalmente :)
__________________
Saludos!!!
Maru.-

Etiquetas: fpdf
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 04:21.