Foros del Web » Programación para mayores de 30 ;) » Programación General »

Sacar XML de MySQL

Estas en el tema de Sacar XML de MySQL en el foro de Programación General en Foros del Web. Buenas a todos y todas! Hace ya un tiempo que estoy intentando aprender a usar XML para implementarlo en una pagina web para mostrar noticias, ...
  #1 (permalink)  
Antiguo 11/01/2011, 12:14
 
Fecha de Ingreso: noviembre-2010
Mensajes: 113
Antigüedad: 13 años, 5 meses
Puntos: 10
Sacar XML de MySQL

Buenas a todos y todas!
Hace ya un tiempo que estoy intentando aprender a usar XML para implementarlo en una pagina web para mostrar noticias, con el siguiente formato:
Código HTML:
<id>0001</id>
<titulo>Titulo noticia</titulo>
<noticia>Bla bla bla bla...</noticia>
...
Hasta aqui todo bien. He conseguido, mediante CSS, XML y XSL, hacer la pagina, que cargue las noticias y que se vea todo igual de bien que se veía con XHTML...
Pero el problema es que todo esto del XML lo he empezado a investigar para que la página sea más dinamica y pueda "jugar" con los datos (saca solo noticias de la 0001 a la 0005, mustrame solo la noticia con titulo "x", busca noticias con la palabra "x" en el titulo, crea una barra de paginación, etc...), entoces para hacer esto he creado una base de datos MySQL con las noticias para sacar con una sequencia SQL solo las que yo quiera.
Entonces... Como diantres saco un documento .XML en el formato que quiero desde MySQL para luego cargarlo en el navegador?
Tengo que hacerlo sacando los datos y creando el documento con PHP? Si es así, hay algun código "standard" para hacerlo?
He buscado por aqui y en google y no he encontrado lo que buscaba...

Muchas gracias a tod@s!
  #2 (permalink)  
Antiguo 12/01/2011, 09:17
 
Fecha de Ingreso: noviembre-2010
Mensajes: 113
Antigüedad: 13 años, 5 meses
Puntos: 10
Respuesta: Sacar XML de MySQL

Nada?
Sabeis de algun tutorial o algo que me aclare un poco?
  #3 (permalink)  
Antiguo 13/01/2011, 09:32
 
Fecha de Ingreso: noviembre-2010
Mensajes: 113
Antigüedad: 13 años, 5 meses
Puntos: 10
Respuesta: Sacar XML de MySQL

Finalmente he encontrado la solución, la publico por si a alguien le sirve:

Código PHP:
<?php 
header
("Content-type: text/xml"); //Indicamos que el contenido es XML

//Establecemos los datos necesarios para la conexión a la bdd
$host "ip_servidor"
$user "usuario";
$pass "contraseña";
$database "nombre_bdd";

//Conectamos a la bdd
$enlace mysql_connect($host$user$pass) or die("Error MySQL.");
mysql_select_db($database$enlace) or die("Error base de datos.");

//Lanzamos la consulta
$query "select * from noticias";
$resultado mysql_query($query$enlace) or die("Sin resultados.");

//En la variable "$salida_xml" guardaremos todo el texto que generemos con este código y lo mostraremos al final de todo
$salida_xml "\n";
$salida_xml .= "\n";

//Mostramos el encabezado
echo "<?xml version='1.0' encoding='UTF-8'?>";
echo 
"<?xml-stylesheet type='text/xsl' href='index.xsl'?>";

//Mostramos el tag padre
echo "<noticias>\n";

//Con este bucle sacaremos TODAS las noticias, envolviendo el contenido de cada uno de los campos con sus <tags> correspondientes y formateandolo con \t (tabular) y \n (salto de linea)
for($x $x mysql_num_rows($resultado) ; $x++)
{
    
$fila mysql_fetch_assoc($resultado);
    
$salida_xml .= "\t<noticia>\n";
    
$salida_xml .= "\t\t<id>" $fila['idNot'] . "</id>\n";
    
$salida_xml .= "\t\t<titulo>" $fila['tituloNot'] . "</titulo>\n";
        
// Corrigiendo caracteres incorrectos
        
$fila['textNot'] = str_replace("&""&"$fila['textNot']);
        
$fila['textNot'] = str_replace("<""<"$fila['textNot']);
        
$fila['textNot'] = str_replace(">"">"$fila['textNot']);
    
$salida_xml .= "\t\t<texto>" $fila['textoNot'] . "</texto>\n";
    
$salida_xml .= "\t</noticia>\n";
}

//Mostramos todo el texto generado
echo $salida_xml;

//Cerramos el tag padre
echo "</noticias>";
?>
Espero que le sirva a alguien!!!

fuente: http://www.bujorel.net/tutorial/como-pasar-datos-de-mysql-a-xml-con-php/

Etiquetas: mysql, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:18.