Crear un XML con MySQL y PHP

En este tutorial vamos a ver como crear un XML con PHP sacando los datos de una tabla de MySQL.

Usamos como ejemplo una tabla como esta, a la que llamé posts:

Y aquí está el código para mostrar estos datos en un archivo XML:

<?php
 
header("Content-type: text/xml");
 
$host = "localhost"; 
$user = "root"; 
$pass = ""; 
$database = "tutorial_xml";
 
$enlace = mysql_connect($host, $user, $pass) or die("Error MySQL."); 
mysql_select_db($database, $enlace) or die("Error base de datos.");
 
$query = "SELECT * FROM posts ORDER BY id ASC"; 
$resultado = mysql_query($query, $enlace) or die("Sin resultados.");
 
$salida_xml = "<?xml version=\"1.0\"?>\n"; 
$salida_xml .= "<informacion>\n";
 
for($x = 0 ; $x < mysql_num_rows($resultado) ; $x++){ 
    $fila = mysql_fetch_assoc($resultado); 
    $salida_xml .= "\t<post>\n"; 
    $salida_xml .= "\t\t<titulo>" . $fila['title'] . "</titulo>\n"; 
    $salida_xml .= "\t\t<url>" . $fila['url'] . "</url>\n";
    $salida_xml .= "\t</post>\n"; 
}
 
$salida_xml .= "</informacion>";
 
echo $salida_xml;
 
?>

Autor: rogeliorabbit

Administrador de Servidores y Páginas Web actualmente sin trabajo. Me interesa la programación, PHP, diseño web, WordPress, Android … Puedes encontrarme en Google+ o en Twitter

7 opiniones en “Crear un XML con MySQL y PHP”

  1. esto ayudarian un poco mas

    for($x = 0 ; $x < mysql_num_rows($res) ; $x++){
    $row=mysql_fetch_array($res);
    for($i=0; $i <$num_campos; $i++ )
    $salida_xml .= "”.$row[$i].”\n”;
    }

  2. sorry falto poner un poco mas de codigo

    $num_campos=mysql_num_fields($res);
    $num_regist=mysql_num_rows($res);
    header (‘Content-type: text/xml’);
    $salida_xml = “\n”;
    $salida_xml .= “\n”;
    for($x = 0 ; $x < mysql_num_rows($res) ; $x++){
    $row=mysql_fetch_array($res);
    for($i=0; $i <$num_campos; $i++ )
    $salida_xml .= "”.$row[$i].”\n”;
    }
    $salida_xml .= “”;
    return $salida_xml;

Deja un comentario

Loading Facebook Comments ...
Loading Disqus Comments ...

No Trackbacks.