Comunidad de diseño web y desarrollo en internet online

Problema al generar archivo xml

Citar            
MensajeEscrito el 14 Ene 2009 11:25 am
buenas, estoy intentando crear un archivo xml pero no puedo incluir los valores de cada uno de los campos de la db.
Ademas de la forma en que lo tengo me añadiria una etiqueta de definicion de xml por cada resultado.

Agradeceria su ayuda.

El codigo es el siguiente:

Código :

<?
   $host = "localhost";   // el host de la base de datos
   $user = "zzzz";         // usuario de la base de datos
   $pass = "zzzz";            // contraseña de la base de datos
   $bbdd = "zzzz";      // base de datos a usar
   
   /*********** esto crea la conexión a la base de datos **************/
   $conexio = mysql_connect($host,$user,$pass) or die(mysql_error()); // $conexion es la conexión a usar.
   mysql_select_db($bbdd,$conexio) or die(mysql_error());
   
   /////////////////////////////////////////////////////////////////////
   
   $consulta = " SELECT marca, modelo, precio, kms, foto, user_id
FROM `zzzz`
WHERE `zzzz` LIKE CONVERT( _utf8 'zzzz'
USING latin1 )
COLLATE latin1_swedish_ci
LIMIT 0 , 30 ";
   $res = mysql_query($consulta)or die(mysql_error());
   
   
   while($val=mysql_fetch_array($res)){
   
   $xml = "<?xml version="1.0" encoding="UTF-8"?>

   <ProductInfo>

      <Details>
      <Asin>[b]$val['marca'][/b]</Asin>
      <ProductName>[b]$val['modelo'][/b]</ProductName>
      <Catalog>Book</Catalog>

      <Authors>
         <Author>Eric aaa</Author>
      </Authors>
      <ReleaseDate>28 June, 2002</ReleaseDate>
      <Manufacturer>New Riders</Manufacturer>
      <ImageUrlSmall>http://xxxxxxx/images/P/073571245X.01.THUMBZZZ.jpg</ImageUrlSmall>
      <ImageUrlMedium>http://xxxxxxx/images/P/073571245X.01.MZZZZZZZ.jpg</ImageUrlMedium>

      <ImageUrlLarge>http://xxxxxxxxxxx/images/P/073571245X.01.LZZZZZZZ.jpg</ImageUrlLarge>
      <Availability>Usually ships within 24 hours</Availability>
      <ListPrice>$45.00</ListPrice>
      <OurPrice>$31.50</OurPrice>
      <UsedPrice>$26.00</UsedPrice>
   </Details>
   
   </ProductInfo>";
   
   $nombre= "archivo.xml";
   $archivo= fopen($nombre, "w+");
   fwrite($archivo, $xml);
   fclose($archivo);.
   }
   ?>

Por daniel casanova

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Ene 2009 07:27 pm
Por lo que he visto en tu código escribe un solo archivo llamado archivo.xml, y lo sobreescribe varias veces con diferentes datos. Primero que nada, quisiera saber si pretendes tener un solo archivo xml con todos los datos necesarios o varios archivos diferentes. Mi recomendación sería la primera, pero no se cuales sean tus requerimientos.

Por Odin

Claber

639 de clabLevel

2 tutoriales

Genero:Masculino   Premio_Secretos

El valle de las hamacas

firefox
Citar            
MensajeEscrito el 14 Ene 2009 11:06 pm
Mi intencion es tener un solo archivo con todos los miembros. Ya he conseguido hacerlo casi todo, me falta poder crear un nodo dentro de otro nodo... o sea que quede algo similar a lo siguiente teniendo en cuenta que no puedo utilizar simplexml ya que tengo instalado en el servidor php 4.4.7. Utilizo xmldom.

...
<ImageUrlSmall></ImageUrlSmall>
<Authors>
<Author>nombre del autor</Author>
</Authors>
...

Este es el codigo tal y como voy ahora mismo. lo que falta no lo pongo por no repetir.

Código :



   $res = mysql_query($consulta)or die(mysql_error());
         $doc = new_xmldoc('1.0');
         $root = $doc->add_root('ProductInfo');
   
   while($val=mysql_fetch_array($res)){
      
         $mis_miembros = $root->new_child('Details','');
         $mis_miembros->new_child('Asin',$val['kms']);
         $mis_miembros->new_child('ProductName',$val['marca']);
         $mis_miembros->new_child('Manufacturer',$val['modelo']);
         $mis_miembros->new_child('ListPrice',$val['precio']);
         $mis_miembros->new_child('ImageUrlSmall','http:xxxxxxxx/'.$val['foto']);
         $mis_miembros->new_child('Authors','');
         $mis_miembros->new_child('Author',$val['kms']);
            
         
            }
$fp = @fopen('result.xml','w');
if(!$fp) {
die('No pudo crearse el Archivo XML');
}
fwrite($fp,$doc->dumpmem());
fclose($fp);
?>


Por cierto, si alguien tiene el mismo problema quizas le sirva este enlace, y si es algo mas inteligente que yo sera capaz de hacer esto que me trae loco.

Muchas gracias y espero vuestra ayuda.
Un saludo

Por daniel casanova

8 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.