Foros del Web » Programando para Internet » PHP »

Condicionar un Insert de un csv actualizando datos anteriores

Estas en el tema de Condicionar un Insert de un csv actualizando datos anteriores en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 28/10/2014, 19:56
 
Fecha de Ingreso: enero-2013
Mensajes: 68
Antigüedad: 11 años, 2 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.     ?>
  #2 (permalink)  
Antiguo 28/10/2014, 20:36
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Condicionar un Insert de un csv actualizando datos anteriores

OFF TOPIC en MySQL.

Movido a PHP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: anteriores, condicionar, csv, insert, mysql, select, sql
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 16:05.