Comunidad de diseño web y desarrollo en internet online

Crear un XML físico a partir de una consulta de access (.mdb)

Citar            
MensajeEscrito el 28 Jun 2011 06:48 am
Que tal buen día a todos!!

Por favor necesito su ayuda urgente!! me he registrado en varios foros y nadie me ha podido ayudar, :cry: no sé si es porque no me explico bien o porque simplemente no entienden que es lo que necesito; :? Les explico rápidamente, estoy haciendo un proyecto en php que se conecta a una simple base de datos de access (.mdb), necesito que el php genere un fichero XML físico con todos los datos de la tabla de access, bueno pues lo pude hacer pero el problema es que en el XML solo genera un solo dato, porque será que podría estar mal??? les anexo el código que hice, ojalá ustedes si puedan ayudarme, en serio que se los agradecería mucho :lol: Por cierto, para que el código de php pueda acceder a la base de datos de access se necesitan permisos de DNS en ODBC :wink:


Código PHP :


<?php

if ($conn_access = odbc_connect ("MyAccess", "", "Mipass"))

$ID = $_POST ['Id'];

$SQL = "select * from Clientes Order by id asc";


$RS = odbc_exec ($conn_access, $SQL);

while ($Eve = odbc_fetch_object ($RS))   
{

//Creamos los Recordset de la base de datos----------------------------------------------------------------------------------|
   
$name = $Eve -> Name;
$floor = $Eve -> Floor;
$drink = $Eve -> Drink;
$food = $Eve -> Food;
$hrs = $Eve -> Hrs;
$imag = $Eve -> Imag;
}
$xml = '<?xml version="1.0" encoding="utf-8"?>

<Data>

<Datos Name = "'.$name.'" Floor = "'.$floor.'" Drink = "'.$drink.'" Food= "'.$food.'" Hrs = "'.$hrs.'" Imag = "'.$imag.'"/>

</Data>';

//Creo mi XML físico llamado "Portafolio.XML"-------------------------------------------------------------------------------------|

$name_file="Portafolio.xml";
$file=fopen($name_file,"w+");
fwrite ($file,$xml);
fclose($file);

?>

Por rIcKy_84

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Jun 2011 12:22 pm
Evidentemente, escribe un solo dato simplemente porque tienes una sola escritura en disco.

Lo que deberías hacer es escribir el encabezado del XML, luego entrar al ciclo while donde escribes todos los datos y luego cierras el archivo físico.

Código PHP :

$name_file="Portafolio.xml"; 
$file=fopen($name_file,"w+"); 
$xml = '<?xml version="1.0" encoding="utf-8"?> ';
fwrite ($file,$xml); 
while ($Eve = odbc_fetch_object ($RS))    
{ 
 

    
$name = $Eve -> Name; 
$floor = $Eve -> Floor; 
$drink = $Eve -> Drink; 
$food = $Eve -> Food; 
$hrs = $Eve -> Hrs; 
$imag = $Eve -> Imag; 


$xml = '<Data> 
 
<Datos Name = "'.$name.'" Floor = "'.$floor.'" Drink = "'.$drink.'" Food= "'.$food.'" Hrs = "'.$hrs.'" Imag = "'.$imag.'"/> 
 
</Data>'; 
fwrite ($file,$xml); 
} // while
fclose($file); 

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 28 Jun 2011 03:35 pm
Woooow!!! :P Mil gracias amigo, te lo agradezco infinitamente, después de casi 4 meses de estar dandole vueltas al asunto llegaste tu y en una pasada me resolviste la vida, :cry: en serio...Muchas gracias DriverOp, te debo una vale? :wink:

Saludos Cordiales desde la ciudad de México.

Por rIcKy_84

3 de clabLevel



 

firefox

 

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