Hola
Pues para ayudarte mejor vendría bien varias cosas
1. Que tienes en el config que incluyes
2. Estructura de la bd
3. Estructura del xml
Ahora, haciendo a un lado esto, por lo que veo en tu codigo
haces inserts, y si entiendo bien lo que quieres, es revisar los datos
del xml contra los de la bd para que dependiendo si viene un producto
que ya existe en la bd no lo inserte de nuevo sino que lo actualize correcto?
Bueno, pues no es complicado, y más con lo que tienes, pues como ya estas recorriendo
los valores del xml en el foreach e insertas, lo que te falta es hacer antes del insert un select que vaya a la tabla de productos y seleccione el producto con los filtros de los campos y sus valores que obtienes del xml
Una vez el haga el select, si ese mysql_query tiene mysql_num_rows mayor a 0, quiere decir que el producto existe, entonces harias un if en donde preguntes el mysql_num_rows y si es mayor a 0 haces un update, y si es 0 , es decir, el producto es nuevo, entonces haces el insert
Ej:
Código php:
Ver original//Arriba esta el foreach general que ya tienes
$query = "SELECT * from productos ";
$i = 0;
foreach ($array_campos as $campo => $campo_db) {
if (property_exists($product, $campo)) {
if( $i == 0 );
$query.= " WHERE ". $campo_db ." = ". addslashes(utf8_decode($product->$campo)); //Si no quieres el = usas like o lo que creas mejor }else{
$query.= " AND ". $campo_db ." = ". addslashes(utf8_decode($product->$campo)); //Si no quieres el = usas like o lo que creas mejor }
}
$i++;
}
$query = "";
$query = " insert into productos ($cadenadecampos ) VALUES ($cadenadevalores)";
}else{
$query = " update productos set campo = valor, campo2 = valor2 WHERE campoclave = valorclave";// tan largo como se necesite
}
//Cierra el foreach general que ya tienes
Espero haber sido claro
Saludos