Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/09/2009, 09:42
ebaraut
 
Fecha de Ingreso: agosto-2009
Mensajes: 11
Antigüedad: 14 años, 8 meses
Puntos: 0
Actualizar y eliminar registros a la vez

Hola,

estoy actualizando una base de datos desde un archivo csv con REPLACE y todo funciona correctamente. Los nuevos registros se insertan y los que ya estaban se vuelven a insertar por si había un cambio en algun campo.

El problema es que si se ha borrado alguna fila en el archivo csv, permanece en la base de datos. Hay alguna manera de saber los registros que se han cambiado con el REPLACE y así borrar los que no han sido afectados por la consulta?
O es mejor hacer un TRUNCATE y luego un INSERT y así me olvido de los que han sido borrados?

Dejo aquí el código que utilitzo:

Código PHP:
$tipo_archivo $_FILES['txt_file']['type'];
if(isset(
$_POST['submit'])){
    if(!(
strpos($tipo_archivo"csv"))){
        
$conn mysql_connect("servidor","nombre","pasw");
        
mysql_select_db("Municipales_inclusio",$conn);
        
$filename=$_FILES['filename']['tmp_name'];
        
$handle =fopen("$filename","r");
        while ((
$data fgetcsv($handle4000";")) !== FALSE){
            
$import="REPLACE INTO mapa_recursos(Id,Institucion,Persona_contacto) values ('$data[0]','$data[1]','$data[2]');";
            
$consulta mysql_query($import,$conn) or die (mysql_error());
        }
        
fclose($handle);
        
//mensaje de exito.
        
$titulo "Mapa de recursos";
        
$mensaje "La base de datos se ha actualizado correctamente";
        include(
"mensajes.php");
        exit;
    } else{
        print 
"Archivo no válido";
    }

Saludos y gracias