Announcement

Collapse
No announcement yet.

Formulario de carga masiva desde csv

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Formulario de carga masiva desde csv

    Buenos dias, la presente es para realizar una consulta:

    Necesito crear un formulario desde el cual pueda realizar una carga masiva a mi base de datos mysql, ya que me pidieron una aplicacion donde el usuario siempre debe cargar una gran cantidad de registros que posee en excel, obviamente creo que facilmente se puede pasar a csv y ahi tambien facilitar la importacion
    por ello quisiera que me ayuden con la creacion de un formulario, no se si quiza desde una aplicacion en blanco o desde una form se pueda
    ya tendria la base de datos creada y la tabla y sus campos, y el csv normalizado ajustado a la base de datos

    gracias por su ayuda

  • #2
    Hola Ivan:

    A mi me resulto lo siguiente:

    En una forma de tipo "Control", defina un campo para cargar el nombre del archivo con extensión ".csv" y defina un botón para cargar el archivo.

    ​En el código del botón incluya lo siguiente:

    if (($fileupload = fopen({archivo},"r")) !== false) { // el parámetro"r" es para lectura
    while (($data = fgetcsv($fileupload, 15000, ",")) !== false) { // el parámetro 15000 es el número de líneas máximo del archivo CSV

    $field1 = $data[0]; // Campo 1
    $field2 = $data[1]; // Campo 2

    $texto = substr($data[3],0,strlen($data[3])-1);
    $texto = str_replace("'",Chr(34),$texto);
    $texto = utf8_encode($texto); // Convierte texto a codificación UTF-8

    $insert_table = 'destino'; // Nombre de la tabla destino
    $insert_fields = array( // Lista de campos
    'campo1' => "'$field1'",
    'campo2' => "'$field2'",
    'campot' => "'$texto'"
    );

    $insert_sql = 'INSERT INTO ' . $insert_table
    . ' (' . implode(', ', array_keys($insert_fields)) . ')'
    . ' VALUES (' . implode(', ', array_values($insert_fields)) . ')';

    sc_exec_sql($insert_sql);

    }
    }

    Espero sea útil,

    Saludos

    Comment

    Working...
    X