Foros del Web » Programando para Internet » PHP »

Organizar xml por categorias con dom

Estas en el tema de Organizar xml por categorias con dom en el foro de PHP en Foros del Web. Buenas, soy nuevo por aqui, y estoy ciertamente apurado Tengo una base de datos con dos tablas, una almacena información de unas imágenes y otra ...
  #1 (permalink)  
Antiguo 13/03/2009, 09:19
 
Fecha de Ingreso: marzo-2009
Mensajes: 1
Antigüedad: 15 años, 1 mes
Puntos: 0
Organizar xml por categorias con dom

Buenas, soy nuevo por aqui, y estoy ciertamente apurado

Tengo una base de datos con dos tablas, una almacena información de unas imágenes y otra almacena las categorías en que se agrupan.

Nesito crear un xml mediante php para luego leerlo desde flash. Lo tengo todo controlado, excepto que la forma en que obtengo el xml no me es válida.

El doc. Php que uso es este

Código:
$linkID = mysql_connect($host, $user, $pass) or die("Error de conexión");
mysql_select_db($database, $linkID) or die("No se encuentra la base de datos.");

/*$query = "SELECT * FROM images ORDER BY albumID DESC";*/

$query = "SELECT images.*, albums.* FROM images, albums WHERE images.albumID = albums.albumID ORDER BY album_name DESC";

$resultz = mysql_query($query) or die('Error, query failed');

$rss = $dom->createElement('entradas');
while($row = mysql_fetch_array( $resultz )) {

    $item = $dom->createElement("category");
	$item->setAttribute('name', $row['album_name']);
    $item->appendChild($dom->createElement("descripcion",$row['caption']));
    $item->appendChild($dom->createElement("imagen",$row['image_url']));
    $rss->appendChild($item);
   
}
$dom->appendChild($rss);

$dom->save("final.xml") ;
Y el xml que obtengo es el siguiente

Código:
<entradas>
  <category name="juveniles">
     <descripcion/>
     <imagen>gus84.jpg</imagen>
  </category>

  <category name="juveniles">
    <descripcion>FINALISIMA</descripcion>
    <imagen>gus83.jpg</imagen>
  </category>

  <category name="juveniles">
    <descripcion>cacacacacacaca</descripcion>
    <imagen>gus82.jpg</imagen>
  </category>

 <category name="Dormitorios">
    <descripcion>aa</descripcion>
    <imagen>dprmitorio.jpg</imagen>
  </category>

  <category name="Dormitorios">
    <descripcion>ahra si</descripcion>
    <imagen>gus746.jpg</imagen>
  </category>
......
Lo que necesito es poder agrupar las imagenes por categorías pero estoy un poco pez en php y por más que he intentado no he conseguido nada. Lo que necesito es algo como esto.

Código:
<entradas>
  <category name="juveniles">
     <entrada descripcion="prueba" imagen="gus84.jp" />
     <entrada descripcion="FINALISIMA" imagen="gus83.jpg" />
     <entrada descripcion="cacacacacacaca" imagen="gus82.jpg" />
  </category>
  <category name="dormitorios">
     <entrada descripcion="aa" imagen="prmitorio.jpg" />
     <entrada descripcion="FINALISIMA" imagen="gus83.jpg" />
     <entrada descripcion="ahra si" imagen="gus746.jpg" />
  </category>
 
......
Alguna pista o solución por favor??
  #2 (permalink)  
Antiguo 13/03/2009, 11:27
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Organizar xml por categorias con dom

Puedes hacer primero la consulta que recupera las categorias solamente, y dentro de el bucle crear otra consulta para obtener las imagenes de la categoria, e ir imprimiendo el XML necesario claro esta.

Otra solucion es usar GROUP_CONCAT de MYSQL, disponible a partir de la version 4.1.
Si sabes ingles te dejo esto, para darte una idea de como utilizarlo:
http://www.christianmontoya.com/2007...ery-is-insane/
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 03:01.