Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/10/2014, 19:56
emmaghost
 
Fecha de Ingreso: enero-2013
Mensajes: 68
Antigüedad: 11 años, 3 meses
Puntos: 0
Pregunta Condicionar un Insert de un csv actualizando datos anteriores

hola una simple duda
Necesito condicionar que cuando se haga un insert, cheque si ya existe algo referente al mismo y si ya existe actualice el anterior estado,
y que si no existe nada simplemente se ingrese
la vdd nose como hacerlo, este es mi insert, ya que ingreso un csv a la base sin problemas solo necesito esa condición

Código PHP:
Ver original
  1. <?php
  2. //conexiones, conexiones everywhere
  3. ini_set('display_errors', 1);
  4. $db_host = 'localhost';
  5. $db_user = 'root';
  6. $db_pass = '';
  7.  
  8. $database = 'almacenes';
  9. $table = 'datos_trimestrales';
  10. if (!mysql_connect($db_host, $db_user, $db_pass))
  11.     die("No se pudo establecer conexión a la base de datos");
  12.  
  13. if (!mysql_select_db($database))
  14.     die("base de datos no existe");
  15.     if(isset($_POST['submit']))
  16.     {
  17.         //Aquí es donde seleccionamos nuestro csv
  18.          $fname = $_FILES['sel_file']['name'];
  19.          echo 'Cargando nombre del archivo: '.$fname.' ';
  20.          echo "<br>"; //* Esto es un salto de linea
  21.          echo "<br>"; //* Esto es un salto de linea
  22.          $chk_ext = explode(".",$fname);        
  23.          if(strtolower(end($chk_ext)) == "csv")
  24.          {
  25.              //si es correcto, entonces damos permisos de lectura para subir
  26.              $filename = $_FILES['sel_file']['tmp_name'];
  27.              $handle = fopen($filename, "r");        
  28.              while (($data = fgetcsv($handle, 1000, ";")) !== FALSE)
  29.              {
  30.                //Insertamos los datos con los valores...                                    
  31.                 $sql = "INSERT into datos_trimestrales(partida_prosupestal, clave_cambs,
  32.                                    concepto,unidad_medida,cantidad,c_p,costo,bien,regular,
  33.                                    mal,ubicacion_bienes,responsable_bienes,trimestre,tiempo,area,fecha_reg,estado)
  34.  
  35.                         values     ('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]',
  36.                                    '$data[5]','$data[6]','$data[7]','$data[8]','$data[9]',
  37.                                    '$data[10]','$data[11]','$data[12]','$data[13]','$data[14]',
  38.                                      CURDATE(),1)";
  39.                
  40.                 //SQL SOLO DEJA TODOS LOS ESTADOS EN SIN ACTUALIZAR
  41.                //$sql2 = "UPDATE dependencias SET estado = 'SIN ACTUALIZAR'  WHERE estado = 'ACTIVO'";
  42.                  $sql3 = "UPDATE dependencias depe, datos_trimestrales fecha
  43.                            SET depe.estado = 'ACTIVO'  
  44.                            WHERE fecha.fecha_reg = CURDATE()
  45.                            and fecha.area = depe.dependencia";
  46.                    mysql_query($sql) or die(mysql_error());
  47.                    mysql_query($sql3)  or die(mysql_error());
  48.              }
  49.              //cerramos la lectura del archivo "abrir archivo" con un "cerrar archivo"
  50.              fclose($handle);            
  51.              echo "Importación exitosa!";                    
  52.          }
  53.          else
  54.          {
  55.             //si aparece esto es posible que el archivo no tenga el formato adecuado, inclusive cuando es cvs, revisarlo para             //ver si esta separado por " , "
  56.              echo "Archivo invalido!";
  57.          }  
  58.     }
  59.      
  60.     ?>