Foros del Web » Programando para Internet » PHP »

problema con carga de csv

Estas en el tema de problema con carga de csv en el foro de PHP en Foros del Web. hola, tengo un problema con mi carga de csv, necesito que cuando inserte un csv, condicione en la base si existe algo anterior a esa ...
  #1 (permalink)  
Antiguo 18/11/2014, 13:59
 
Fecha de Ingreso: enero-2013
Mensajes: 68
Antigüedad: 11 años, 9 meses
Puntos: 0
problema con carga de csv

hola, tengo un problema con mi carga de csv, necesito que cuando inserte un csv, condicione en la base si existe algo anterior a esa area, si existe que ponga lo anterior como "viejo" y lo que pongo en el csv lo ponga como nuevo, pero solo el ultimo renglon me lo pone como nuevo y todo lo demas como viejo, que estoy haciendo mal? espero me ayuden

En paginas anteriores mando la area y el tipo de archivo para validar en esta nueva y asi condicionar mi update e insert pero no lo eh logrado

Código PHP:
Ver original
  1. <?php
  2. $connect = mysql_connect("localhost","root","");
  3. mysql_select_db("almacenes",$connect); //select the table
  4. //
  5.  
  6.  $tipoArchivo =$_POST['tipo'];
  7. $dependencia2 = $_GET['depe'];  
  8.  
  9.  
  10. if ($_FILES[csv][size] > 0) {
  11.  
  12.     //get the csv file
  13.     $file = $_FILES[csv][tmp_name];
  14.     $handle = fopen($file,"r");
  15.  
  16.  
  17.     echo 'la dependencia es  :  '.$dependencia2.' ';
  18.     echo 'el tipo de archivo  :  '.$tipoArchivo.' ';
  19.      
  20.     //loop through the csv file and insert into database
  21.     do {
  22.         if ($data[0]) {    
  23.  
  24.                 if ($tipoArchivo = 'nuevo'){
  25.                        $consultaExistencia = mysql_query("SELECT area, tipo FROM datos_trimestrales
  26.                                               WHERE area = '$dependencia2' and tipo = 'nuevo'");
  27.  
  28.                          
  29.                              if (mysql_num_rows($consultaExistencia)>0){  
  30.  
  31.                                   mysql_query("UPDATE datos_trimestrales
  32.                                  SET tipo = 'viejo'  
  33.                                  WHERE area = '$dependencia2'");
  34.                                   echo '***se actualizo lo nuevo a viejo*****';
  35.                              }
  36.                              
  37.                               mysql_query("INSERT into datos_trimestrales(partida_prosupestal, clave_cambs,
  38.                                             concepto,unidad_medida,cantidad,c_p,costo,bien,regular,
  39.                                             mal,ubicacion_bienes,responsable_bienes,trimestre,tiempo,
  40.                                             area,fecha_reg,tipo)
  41.                                           VALUES
  42.                                                ('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]',
  43.                                                '$data[5]','$data[6]','$data[7]','$data[8]','$data[9]',
  44.                                                '$data[10]','$data[11]','$data[12]','$data[13]','$data[14]',
  45.                                                 CURDATE(),'nuevo')");
  46.  
  47.                                echo '***termino de insertar registros depues de actualizar*****';
  48.  
  49.                 }
  50.                 else{
  51.                              echo '***el archivo es viejo no se actualiza nada*****';
  52.                     mysql_query("INSERT into datos_trimestrales(partida_prosupestal, clave_cambs,
  53.                                             concepto,unidad_medida,cantidad,c_p,costo,bien,regular,
  54.                                             mal,ubicacion_bienes,responsable_bienes,trimestre,tiempo,
  55.                                             area,fecha_reg,tipo)
  56.                                           VALUES
  57.                                                ('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]',
  58.                                                '$data[5]','$data[6]','$data[7]','$data[8]','$data[9]',
  59.                                                '$data[10]','$data[11]','$data[12]','$data[13]','$data[14]',
  60.                                                 CURDATE(),'viejo')");
  61.                 }
  62.  
  63.  
  64.            
  65.  
  66.         }
  67.     } while ($data = fgetcsv($handle,1000,";","'"));
  68.     header('Location: importacionDai3.php?success=1'); die;
  69.  
  70. }
  71.  
  72. ?>
  73.  
  74. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  75. <html xmlns="http://www.w3.org/1999/xhtml">
  76. <head>
  77. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  78. <title>Import a CSV File with PHP & MySQL</title>
  79. </head>
  80.  
  81. <body>
  82.  
  83. <?php if (!empty($_GET[success])) { echo "<b>Your file has been imported.</b><br><br>"; } //generic success notice ?>
  84.  
  85. <form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
  86.   Choose your file: <br />
  87.  
  88.   <input name="csv" type="file" id="csv" />
  89.  
  90.   <input type="submit" name="Submit" value="Submit" />
  91.   <input type="text" readonly id="dependencia" name="inputDependencia"
  92.         value="<?php echo $dependencia2;?>" >
  93.  
  94.          <input type="text" readonly id="tipo" name="tipo"
  95.         value="<?php echo $tipoArchivo;?>" >
  96. </form>
  97.  
  98. </body>
  99. </html>
  #2 (permalink)  
Antiguo 18/11/2014, 14:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: problema con carga de csv

En la linea 24 jamás haces una comparación, lo que haces ahí es una asignación.

¿Será por eso?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 18/11/2014, 14:27
 
Fecha de Ingreso: enero-2013
Mensajes: 68
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: problema con carga de csv

Cita:
Iniciado por pateketrueke Ver Mensaje
En la linea 24 jamás haces una comparación, lo que haces ahí es una asignación.

¿Será por eso?
lo que quiero es que si es igual a "nuevo", ya que el "tipoArchivo" lo traigo de otra pagina, asi que si lo asigno igual a ( " if ($tipoArchivo = 'nuevo'){... " ) entra en la condicionante, pero el problema es que no hace lo que tiene que hacer, que es actualizar lo anterior y lo nuevo que inserte lo ponga como "nuevo" solo pone un renglon como nuevo y lo anterior como viejo
  #4 (permalink)  
Antiguo 18/11/2014, 14:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: problema con carga de csv

¿Sabes la diferencia entre una comparación y una asignación o no?

Código PHP:
Ver original
  1. // MAL (asignación)
  2. if ($variable = 'valor')
  3.  
  4. // BIEN (comparación)
  5. if ($variable == 'valor')

Así que te repito: en la linea 24 no haces una comparación.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 18/11/2014, 14:35
 
Fecha de Ingreso: enero-2013
Mensajes: 68
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: problema con carga de csv

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Sabes la diferencia entre una comparación y una asignación o no?

Código PHP:
Ver original
  1. // MAL (asignación)
  2. if ($variable = 'valor')
  3.  
  4. // BIEN (comparación)
  5. if ($variable == 'valor')

Así que te repito: en la linea 24 no haces una comparación.
ya lo cambie perdona por eso :)
pero aun asi, si no hay otro registro en $consultaExistencia, entra como si existiera uno, me actualiza todos a viejo y el ultimo renglón lo pone nuevo, no entiendo el porque, por cierto gracias por apoyarme en la duda

Etiquetas: csv, fecha, html, mysql, registro, select
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:55.