Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Como filtrar la información para generar un reporte (https://www.clubdelphi.com/foros/showthread.php?t=79901)

eli02 20-08-2012 20:09:15

Como filtrar la información para generar un reporte
 
Buen dia, necesito pedirles su ayuda con el siguiente problema, necesito generar reportes de una búsqueda pero no logro hacerlo. El código que uso es el siguiente:
Código PHP:

<?php

//para crear el documento pdf instanciamos incluimos la libreria

require_once('class.ezpdf.php');

$pdf =& new Cezpdf('a4');
$pdf->selectFont('../fonts/courier.afm');
$pdf->ezSetCmMargins(1,1,1.5,1.5);
//$FechaActual =  date ("Y/m/d");

//Optenemos los registros desde MySQL
$conex mysql_connect("localhost""root""");
mysql_select_db("sivri"$conex);
$queCov "SELECT convenios.COV_Id, convenios.COV_Nombre, convenios.COV_Fecha_Firma, convenios.COV_Fecha_Vigencia, convenios.COV_Resumen FROM convenios WHERE COV_Nombre like '%$id_nom%'";

$resCov mysql_query($queCov$conex) or die(mysql_error());
$totCov mysql_num_rows($resCov);

//Creando el arrayslos de datos, titulos y opciones
$pcd 0;
while(
$datacon mysql_fetch_assoc($resCov)) {
    
$pcd $pcd+1;
    
$datos[] = array_merge($datacon, array('COV_Id'=>$pcd));
}
$titulos = array(
             
            
                
'COV_Nombre'=>'<b>Nombre</b>',
                
'COV_Fecha_Vigencia'=>'<b>Fecha Vigencia</b>',
                
'COV_Resumen'=>'<b>Resumen</b>',
                
//'BEC_Fecha_Cierre'=>'<b>Fecha de Cierre</b>',
                //'BEC_Campo_Estudio'=>'<b>Campo de Estudio</b>',
                //'BEC_Url'=>'<b>Direccion Web</b>'
            
);
$opciones = array(
                
'shadeCol'=>array(0.9,0.9,0.9),
                
'xOrientation'=>'center',
                
'width'=>500
            
);

//Imprimir los resultados con fecha y hora

$titulo "<b>VICERECTORIA DE ASUNTOS INTERNACIONALES</b>\n";
$titulo2"REPORTE DE CONVENIOS \n";
 
$pdf->ezText($titulo 12);
$pdf->ezTable($datos$titulos''$opciones);
$pdf->ezText("\n\n\n"10);
$pdf->ezText("<b>Fecha:</b> ".date("d/m/Y"), 10);
$pdf->ezText("<b>Hora:</b> ".date("H:i:s")."\n\n"10);
$pdf->ezStream();


?>

si dejo la consulta para imprimir todos los registros que tengo sin realizar la búsquedas si me funciona, pero asi como tengo el codigo de que me muestre solo la que busque no. Les agradecería su ayuda.

D-MO 20-08-2012 20:19:48

No se si olvidé tanto de PHP, pero me parece que esta sentencia no es correcta:
Código:

$queCov = "SELECT ...COV_Nombre like '%$id_nom%'";
Y digo me parece porque no recuerdo si podemos obtener el valor de una variable así por así dentro de una cadena, si no estoy mal esto debería hacerse usando llaves ({ y }).

Ej: {$variable}
Por lo que probaría haciéndolo de esta manera:
Código PHP:

$queCov "SELECT convenios.COV_Id, convenios.COV_Nombre, convenios.COV_Fecha_Firma, convenios.COV_Fecha_Vigencia, convenios.COV_Resumen FROM convenios WHERE COV_Nombre like '%{$id_nom}%'"

Otra cosa, sería conveniente que "limpies" el valor de esa variable porque nunca faltará algun usuario que se pase de listo y haga una Inyección SQL en la búsqueda.

Saludos

eli02 20-08-2012 20:26:01

gracias, ya lo intente pero no funciona

D-MO 20-08-2012 20:33:23

¿y cual es el error?, ¿Has verificado que el sql se construye correctamente?

D-MO 20-08-2012 20:35:53

Por otro lado, ¿de donde obtienes "$id_nom"?

Saludos

eli02 20-08-2012 20:36:20

si, es la consulta que utilizo para generar la busqueda y me funciona correctamente, pero para generar el reporte no, me dice que ocurrio un error al cargar el documento, pero si yo realizo un reporte de todos los registros si me genera el reporte

eli02 20-08-2012 20:40:03

de una caja de texto en la pagina de búsquedas, creo que ese es mi error que no se como recuperar esa variable de otro lado

D-MO 20-08-2012 20:54:36

Cita:

Empezado por eli02 (Mensaje 440057)
...no se como recuperar esa variable de otro lado

Precisamente noté que en el código que pones en ningún momento tomas el valor enviado por el formulario, recuerda que el formulario está en el lado del navegador y PHP del lado del servidor, por lo que la única forma de comunicarse es mediante mensajes HTTP, para lo cual, hablando de pasar a PHP los datos de un formulario, lo hacemos mediante los métodos HTTP POST y/o GET, entonces, el formulario html debe tener configurados los atributos action y method (como mínimo); en el action la ruta del script php que recibirá los datos y en el method el método a utilizar (post ó get).

Ya del lado de PHP, para recibir un valor enviado por POST o GET lo hacemos utilizando las variables $_POST y $_GET respectivamente.

ej:
Código PHP:

$id_nom $_POST['id_nom']; 

Saludos

eli02 20-08-2012 21:18:10

el problema es que en el atributo action ya tengo otro formulario en el que me muestra las búsquedas

D-MO 20-08-2012 21:30:10

¿Y cual es el problema?

Nada impide que hagas el $_GET o $_POST en ese mismo formulario, justo antes de que quieras utilizar ese valor.

Te recomiendo documentarte un poco mas sobre el manejo de formularios con php.

Saludos

eli02 20-08-2012 22:53:59

ya lo hice pero no funciona :(

D-MO 21-08-2012 00:41:03

Cita:

Empezado por eli02 (Mensaje 440079)
ya lo hice pero no funciona :(

¿Y cual es el problema?

Supongo que el name del campo es id_nom, ¿cierto?

Casimiro Notevi 21-08-2012 01:31:39

Cita:

Empezado por eli02 (Mensaje 440079)
ya lo hice pero no funciona :(

Pero explica las cosas, que no somos adivinos ni tenemos bola de cristal ;)

roman 21-08-2012 02:59:40

Cita:

Empezado por eli02 (Mensaje 440079)
ya lo hice pero no funciona :(

Muestra la línea de la etiqueta <FORM>

// Saludos

eli02 21-08-2012 18:15:49

<form id="form1" name="form1" method="post" action="buscar_nombre.php">

roman 21-08-2012 18:20:24

Entonces debería funcionar como te dice DM-O:

Código PHP:

$id_nom $_POST['id_nom']; 

Siempre y cuando, claro está, la caja de texto correspondiente tenga su atributo name igual a id_nom.

// Saludos

eli02 21-08-2012 18:24:24

lo que pasa es que en el action de este formulario yo mando a llamar al formulario que me muestra la busqueda pero yo necesito esta misma variable en otra pagina donde muestro los reportes, entonces es ahi que no se como pasar el valor de esta variable a la pagina de los reportes.

roman 21-08-2012 18:29:53

¿O se que el código de tu primer mensaje no está en el script buscar_nombre.php? Entonces, cómo llamas a ese código. Describe los pasos generales desde el formulario.

// Saludos

eli02 21-08-2012 18:38:39

Bueno, en el primer formulario que se llama buscar ingreso un filtro para realizar la búsqueda, aqui llamo al formulario buscar_nombre y en este muestro los resultados de la búsqueda, y necesito que esta búsqueda se imprima en un reporte y eso es lo que no logro hacer. Tengo otra formulario que es donde esta el código del reporte y es aqui donde ocupo la variable que ingreso en el primer formulario.

roman 21-08-2012 18:48:30

A ver, con información tan escueta haces muy difícil ayudarte.

Según entiendo, tu formulario está en un script buscar.php el cual invoca al script buscar_nombre.php que muestra los resultados. ¿Y el reporte? ¿Desde dónde lo llamas? ¿Desde la página de resultados? De ser así, ¿cómo lo llamas?

// Saludos


La franja horaria es GMT +2. Ahora son las 00:50:21.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi