entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

como export tabla mysql a excel con php (header vnd.ms-excel) usando parametros url
por ejm:

 descargar.php: exporta toda la bd registrada
 descargar.php?i=20131201 -> exporta la bd apartir de la fecha 20131201
 descargar.php?i=20131201&f=20140101 --> exporta la bd de un rango de fechas 20131201- 20140101

alguna página de referencia, o plugin a utilizar

se agradece!

2 Respuestas

2votos

Leonardo-Tadei Puntos227020

Hola,

la pregunta es un poco genérica pero más o menos sería así:

  • descargar.php ercibe los parámetros vía GET
    • si no recibe nada, genera la query que devuelve toda la tabla
      -- si recibe la fecha i, la converte a YYYY-MM-DD y le agrega a la query una cláusula WHERE fecha >= $fechai.
      --- si recibe la fecha i y la fecha f, las converte a YYYY-MM-DD y le agrega a la query una cláusula WHERE fecha >= $fechai AND fecha <= $fechaf

Luego, por ejemplo con esta clase http://www.phpclasses.org/package/2038-PHP-Export-data-from-a-MySQL-database-to-Excel-files.html generás el XLS a partir del resultado de la query.

Saludos!

1voto

jlcallalle Puntos430

Hola Leonardo, tu propuesta esta buena, gracias
Asi lo codifique:

if(isset($_GET['i']) && isset($_GET['j'])){

    //$from ='2014-01-01'; 
    $fecha_inicial = $_GET['i'];
    $from = substr($fecha_inicial,0,4)."-".substr($fecha_inicial,4,2)."-".substr($fecha_inicial,6,2);

    //$to = '2014-01-06';
    $fecha_final = $_GET['j']; 
    $to = substr($fecha_final,0,4)."-".substr($fecha_final,4,2)."-".substr($fecha_final,6,2);

    $qry=mysql_query("select * from $tabla where fecha BETWEEN ('$from') AND ('$to') order by fecha") ;

    header("Content-type: application/vnd.ms-excel" ) ;
    header("Content-Disposition: attachment; filename=consulta_".$from.'_'.$to.'.xls' ) ;

}elseif(isset($_GET["i"])) {

    $fecha_inicial = $_GET['i'];
    $from = substr($fecha_inicial,0,4)."-".substr($fecha_inicial,4,2)."-".substr($fecha_inicial,6,2);

    $qry=mysql_query("select * from $tabla where fecha >= ('$from') order by fecha"  ) ;

    header("Content-type: application/vnd.ms-excel" ) ;
    header("Content-Disposition: attachment; filename=consulta_".$from.'.xls' ) ;

}else {

      $qry=mysql_query("select * from $tabla order by fecha" ) ;

      header("Content-type: application/vnd.ms-excel" ) ;
      header("Content-Disposition: attachment; filename=consulta.xls") ;
}

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta