Tengo un fichero que me procesa un XML y me lo inserta en mi base de datos.
El problema es que una vez al mes, me van a enviar el XML actualizado.
Entonces no se como hacer para que me haga un update de solo los prouctos que me vengan nuevos o de los que tengan datos modificados.
¿Es muy complicado? porque la verdad me ha costado la vida hacer este fichero ahora mismo estoy un poco atrancado,encima mis jefes sabiendo que no se hacerlo me estan presionando muchisimo.
Aqui os dejo el codigo de procesamiento del XML (si alguien lo necesita puede copiarlo sin problema, o si tiene alguna duda sin problema se contesta).
Código PHP:
Ver original
<?php include ('../config.php'); function convierte_municipio($municipio_cam) { $query="select id_whp from municipios_cam_whp where id_cam='$municipio_cam'"; $id_whp = "0"; $id_whp = $row["id_whp"]; } if ($id_whp!=0) { return $id_whp; } else { return 0; } } function convierte_tipo($tipo_cam) { 1 => 1, 2 => 2, 3 => 3, 4 => 4, ); return $convierte[$tipo_cam]; } function convierte_categoria($categoria_cam) { 118 => 1, 119 => 2, 120 => 4, 121 => 5, 124 => 5, 128 => 6, 129 => 6, 130 => 6, 132 => 6, 133 => 6, 134 => 6, 135 => 6, 136 => 6, 137 => 6, 138 => 6, 139 => 1, 140 => 3, 142 => 1, 143 => 1, 144 => 1, 145 => 2, 146 => 6, 147 => 6, 148 => 1, 149 => 6, 150 => 6, 151 => 6, 152 => 6, 153 => 6, 154 => 6, 155 => 6, 158 => 6, 159 => 6, ); return $convert[$categoria_cam]; } $products = $xml->product; $array_campos = array("titulo_oferta" => "titulo_oferta", "desc_largaIngles" => "desc_corta", "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", "size" => "size", "ref" => "ref", "price_m2" => "price_m2", "built_size" => "built_size", "plot_size" => "plot_size", "floor" => "floor", "garage" => "garage", "Lumberroom" => "lumberroom", "padel" => "padel", "school" => "school", "swimming_pool" => "swimming_pool", "golf" => "golf", "beach" => "beach", "medicalCenter" => "medicalCenter", "desc_largaIngles" => "desc_largaIngles", "desc_larga" => "desc_larga" ); $num_elemento_municipio_en_array = 4; $num_elemento_tipo_en_array = 6; $num_elemento_categoria_en_array = 5; foreach ($products as $product) { continue; } foreach ($array_campos as $campo => $campo_db) { if (property_exists($product, $campo)) { $arraydecampos[] = $campo_db; } } $arraydevalores[$num_elemento_municipio_en_array] = convierte_municipio($arraydevalores[$num_elemento_municipio_en_array]); $arraydevalores[$num_elemento_tipo_en_array] = convierte_tipo($arraydevalores[$num_elemento_tipo_en_array]); $arraydevalores[$num_elemento_categoria_en_array] = convierte_categoria($arraydevalores[$num_elemento_categoria_en_array]); $query = " insert into productos ($cadenadecampos ) VALUES ($cadenadevalores)"; if ($result === false) { echo "Error: no se ha podido insertar la propiedad <br />"; echo $query; exit; } else { echo "propiedades actualizadas " .$arraydevalores[0]. " -- -->". $arraydevalores[18] ."<br />" ; } } ?>