Foros del Web » Programando para Internet » PHP »

Cambiar el valor de un campo de un xml a el valor asignado en una tabla SQL

Estas en el tema de Cambiar el valor de un campo de un xml a el valor asignado en una tabla SQL en el foro de PHP en Foros del Web. Hola muy buenas tardes, una preguntita que nose si me poran resolver. No soy un gran experto en php pero estoy aprendiendo como puedo. He ...
  #1 (permalink)  
Antiguo 19/08/2009, 09:07
 
Fecha de Ingreso: abril-2009
Mensajes: 64
Antigüedad: 15 años
Puntos: 0
Hola muy buenas tardes, una preguntita que nose si me poran resolver.
No soy un gran experto en php pero estoy aprendiendo como puedo.
He hecho un script en php para que me recoja y procese todo el XML, esto funciona, luego tengo en ese mismo fichero una query para que inserte los datos e laas de dato, esto funciona tambien. Ahora el problema es el siguiente, en el XML en el campo <id_municpio> por ejemplo tiene el valor <id_municpio>4567</id_municpio>, segun el municipio que sea, en otra ocasion puede ser <id_municpio>874</id_municpio>, ya tengo su tabla donde se a que se refiere cada numero, pero yo ya tengo una tabla hecha con mis municipios, entonces lo que necesito es pasar sus valores a los mios, por ejemplo puede que 4567 y 874 en el XML para mi base de datos esos dos pertenecrian an mismo ID de mi tabla de municpios que por ejemplo seria 5 (esto es porque osotros tenemo uno muniipos mas genericos y en el xml vienen mas completos.
No se si me he explicado bien, pero es lo ulimo que me queda por hacer y estoy atrancado por favor necesito su ayuda, muchs gracias de antemano, muy amables y gracias de nuevo !

Este es el fichero que procesa el xml, como vereis,he hecho una condicion para descartar propiedades con un determinado <id_municipio>, lo dicho, ahora necesito trasnformar los valores de ese campo por los mios, por ejemplo 30087,587,30059 y 8875 seran para mi 5.
Gracias.

<?php
include ('../config.php');

$xml = simplexml_load_file("move.xml");

$products = $xml->product;

$array_campos = array("titulo_oferta" => "titulo_oferta", "desc_larga" => "desc_larga", "precio" => "precio", "precio_lib" => "price_lib","id_municipio" => "id_municipio", "id_categoria" => "id_categoria", "id_tipo" => "id_tipo", "image1" => "ruta_foto", "image2" => "ruta_foto2", "image3" => "ruta_foto3", "image4" => "ruta_foto4", "image5" => "ruta_foto5", "image6" => "ruta_foto6", "habs" => "habs", "bath" => "bath", "orient" => "orient", "direc" => "direc");

foreach ($products as $product) {

$array_municipios_no_aceptados = array(30026, 3047);

if (in_array($product->id_municipio , $array_municipios_no_aceptados)) {
continue;
}

$arraydecampos = array();
$arraydevalores = array();
foreach ($array_campos as $campo => $campo_db) {
if (property_exists($product, $campo)) {
$arraydecampos[] = $campo_db;
$arraydevalores[] = addslashes(utf8_decode($product->$campo));

}
}

$cadenadecampos = implode(",", $arraydecampos);
$cadenadevalores = "'" . implode("','", $arraydevalores) . "'";


$query = " insert into productos ($cadenadecampos ) VALUES ($cadenadevalores)";
$result = mysql_query($query) ;

if ($result === false) {
echo "Error: no se ha podido insertar la propiedad <br />";
echo mysql_error() . "<br />";
echo $query;
exit;
} else {
echo "propiedades actualizadas " .$arraydevalores[0]. "<br />" ;

}
}

?>

Última edición por GatorV; 19/08/2009 a las 10:06
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 22:33.