| Importación sencilla de XML a mySQL con PHP |
| Escrito por Manu |
| Martes, 01 de Abril de 2008 23:00 |
|
Ultimamente he tenido que realizar algunas pruebas de importación de datos provenientes de un fichero XML a tablas de una base de datos en mySQL. Y bueno con PHP 5 me resultó bastante sencillo, ya que incorpora (por defecto) la extensión simpleXML que facilita mucho las cosas.
Para este ejemplo necesitaremos crear 2 ficheros en php, uno con la configuración y conexión a la base de datos, y otro con el script de importación en si. Además del fichero XML que vamos a importar. Y evidentemente necesitaremos tener creada las tablas a la que vamos a importar. Empecemos mostrando la estructura del fichero XML a importar. <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> Partiendo de esta estructura de nuestro fichero XML a importar deberemos crear nuestro script para que sea capaz de importar estos datos directamente en una tabla mysql que tendremos que haber creado anteriormente. Además dicha base de datos deberá incorporar al menos dos tablas para que sea capaz de incorporar eficientemente esta estructura en la que un libro tiene asociada una serie de imágenes, aunque podríamos hacerlo con una sola en la que tener triplicados los campos url de la imagen y su descripción, me ha parecido más didáctico e interesante hacerlo en dos tablas. Dando así solución a un problema bastante común como la división en distintas tablas de un único fichero XML. Ahora veremos el código php necesario para realizar la importación. En primer lugar tendremos un fichero de configuración con los datos de conexión y los comandos necesarios para realizar dicha conexión a la base de datos mySql. /*************************************************************** A este fichero pocos comentarios, así que pasaremos al script de importación no si antes comentar que las tablas tienen un campo ID de tipo entero, definida como clave primaria y con auto-incremento. Así que al añadir el libro a la tabla necesitaremos recuperar dicho ID (generado automaticamente) para relacionar el último libro añadido con las imagenes. /***************************************************************Las funciones claves para la importacion son simplexml_load_file que carga el fichero XML interpretandolo como un objeto, lo cual simplifica mucho su manipulación, permitiendonos recorrer todo el fichero con lafunción en PHP "foreach ($xml->libro as $libro)" teniendo así para cada registro de un libro en el XML la oportunidad de obtener sus valores a través de la variable $libro la cual es un objeto con todas las propiedades definidas en el XML. El resto del código se encarga de inserta el registro en la base de datos y luego recorremos las imágenes del libro para igualmente insertarlas en la correspodiente tabla. Destacando aquí el uso de la función mysql_insert_id() para obtener el valor del ID del último registro insertado en la tabla libros. CREATE TABLE `libros` ( Bueno espero que les haya sido de utilidad este rápido vistazo a la importación de XML y dejen sus comentarios al respecto. Hasta el
|
| También te puede interesar: |
|---|
|
GPS HTC DIamond Java PDAs Windows Mobile Windows XP apple astronomia blogs buscadores ciencia cine comunicaciones consolas correo cultura curiosidades descargas diseño estadisticas excel feeds firefox flash fotografia freeware fuentes gadgets gimp gmail google gratis gratuito hacienda hardware humor iconos imagenes internet javascript joomla libros linux mediacenter moviles musica mysql navegadores noticias novedades ofimatica online opinion p2p personalizacion photoshop php plugins portatiles preview programacion prototipos publicidad recursos redes sociales reviews robotica seguridad seo sociedad software television trabajo trailers trucos tutoriales twitter ubuntu utilidades vectorial videojuegos videos voIP wii wtf youtube