En posts anteriores ya se habíamos tratado el tema de la exportación de datos desde una base de datos MySQL, haciendo uso de PHP, en esa ocasión el destino era una hoja de calculo de Excel, ahora bien la principal desventaja de hacer la exportación a Excel, es en el manejo de las fechas.
Para Excel las fechas son en realidad una cantidad entera que representa una cierta cantidad en días, partiendo de una fecha base, así por ejemplo; la fecha 3 de febrero del 2012 (03/02/12) es en realidad 40,942, que es el numero de días que existen desde la fecha base hasta la fecha que nosotros usamos, ahora bien, en el archivo de excel lo que realmente esta guardado es 40,942, así que al tratar de leer el archivo de excel desde PHP tendríamos que hacer nosotros el calculo; para evitar eso, exportaremos los datos a XML, comencemos con una base de datos llamada almacén con una tabla denominada empleados con los siguientes campos y datos:
El proceso de exportar los datos a Excel lo podemos simplicar mediante el uso de un header que indique que el archivo que vamos a escribir es un XML, asi solo tendremos que leer los datos de la tabla y mandarlos a escribir en una estructura XML usando la isntrucción echo, tal y como vemos a continuación.
Como podemos observar el código es muy simple,
- Accedemos al servidor y la base de datos con mysql_conncet y mysql_select_db
- Creamos la consulta en la variable $lista, esta puede ser tan complicada como lo necesite.
- Ejecutamos la consulta con mysql_query.
- Usamos header para indicar que el contenido del documento sera text/xml
- Empleamos un ciclo while para ir leyendo los datos con mysql_fetch_row
- Escribimos los datos en las etiquetas XML que nosotros creamos conveniente.
- Cerramos la conexión a la base de datos con mysql_close
El resultado del código es el siguiente:
Ahora solo bastara con usar la opción guardar como para tener nuestro archivo XML, de igual forma es posible escribirlo en un XML vacio para dar el enlace para descarga, pero de esta forma podemos ver los datos exportados para corroborar que el proceso se realizo correctamente.
En un próximo post, veremos el proceso de importar desde un XML hacia la base de datos usando PHP, ya para terminar les dejamos el enlace al archivo SQL de la base de datos.
https://dl.dropbox.com/u/26498694/almacen.sql
Gracias!!!
Me gustaMe gusta
$archivo = ‘elnombredetuarchivo’;
// Guardando el xml
$xmlobj=new SimpleXMLElement($xml);
$xmlobj->asXML(«xml/» . $archivo . «.xml»);
// Descargando el archivo
$ruta=»xml/».$archivo.».xml»;
header («Content-Disposition: attachment; filename=».$ruta);
header («Content-Type: application/octet-stream»);
header («Content-Length: «.filesize($ruta));
readfile($ruta);
Me gustaMe gusta
Que tal Buenas tardes me gustaría saber si al momento de generar el XML se pueda descargar de forma automatica Agredeceria demasiado tu ayuda Saludos
Me gustaMe gusta
Mientras el archivo ya esté generado en el servidor si se puede, este artículo le puede ser útil. http://www.cristalab.com/tutoriales/forzar-descargas-con-php-c166l/
Me gustaMe gusta
Buenas, por favor me podrias decir como importar desde el xml a php?
Me gustaMe gusta
en breve les tendremos un post sobre ello
Me gustaMe gusta
me podrias decir como guardar eso que se acaba de crear el xml ????
Me gustaMe gusta
lo puedes guardar con el mismo navegador, solo dale en archivo/ guardar como
Me gustaMe gusta