Nueva pregunta

Pregunta:

Fecha: 25-10-2018 10:38:30 (En Español)

insertar id automáticamente en archivo csv[No resuelta]

buenas amigos tengo un script que importa un archivo csv a la base de dato mysql. pero el detalle es que en el archivo tengo que ponerle los id cuando quiero que lo ponga automatico. ya que son cientos de datos y no quiero poner cientos de numeros (id) todos los meses como le hago ? y gracias de antemanoo por su respuestas

 <div class="x_content">
                    <p class="text-muted font-13 m-b-30">
                    Se subira solo archivos CSV.
                    </p>
                    <div class="col-lg-12">
                        <div class="panel-body">
                            <div class="alert alert-success alert-dismissable">
                                <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
                                <?php if (!empty($_GET['success'])) 
                                    {echo "<b>Su archivo ha sido importado Exitosamente.</b><br><br>"; } 
                                ?> 
                                <a href="#" class="alert-link">Estado de carga de Archivo</a>.
                            </div>
                            <form action='control.php' method='post' enctype="multipart/form-data">
                            Importar Archivo : <input type='file' name='sel_file' size='20'>
                                <input class="btn btn-success" type='submit' name='submit' value='Subir Archivo'/>
		                    </form>

                        </div>
                    </div>  




<?php

//conexiones, conexiones everywhere
ini_set('display_errors', 1);
error_reporting(E_ALL);
$db_host = 'localhost';
$db_user = 'root';
$db_pass = '';
 
$database = 'radius';
$table = 'archivo_banco';
if (!@mysql_connect($db_host, $db_user, $db_pass))
    die("No se pudo establecer conexión a la base de datos");
 
if (!@mysql_select_db($database))
    die("base de datos no existe");
    if(isset($_POST['submit']))
    {
        //Aquí es donde seleccionamos nuestro csv
         $fname = $_FILES['sel_file']['name'];
         echo 'Cargando archivo CSV...: '.$fname.' <br>';
         $chk_ext = explode(".",$fname);
 
         if(strtolower(end($chk_ext)) == "csv")
         {
             //si es correcto, entonces damos permisos de lectura para subir
             $filename = $_FILES['sel_file']['tmp_name'];
             $handle = fopen($filename, "r");
 
             while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
             {
               //Insertamos los datos con los valores...
                $sql = "INSERT into archivo_banco(id,fecha,referencia,monto) values('$data[0]','$data[1]','$data[2]','$data[3]')";
                mysql_query($sql) or die('Error: '.mysql_error());
             }
             //cerramos la lectura del archivo "abrir archivo" con un "cerrar archivo"
             fclose($handle);
             echo "Importación exitosa!";
         }
         else
         {
            //si aparece esto es posible que el archivo no tenga el formato adecuado, inclusive cuando es cvs, revisarlo para             
//ver si esta separado por " , "
             echo "Archivo invalido!";
         }
    }
 
?> 
Etiquetas: CSV - MySQL - PHP Votos: 0 - Respuestas: 1 - Vistas: 9 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 26-10-2018 18:44:25 Amigo el campo id de tu tabla debe ser autoincremental y este debe ser omitido en la lista de campos a insertas ya que mysql se encargara de autonumerar las filas:

    La estructura de la tabla de ejemplo sería:

    CREATE TABLE `tabla`  (
        `id` int(255) NOT NULL AUTO_INCREMENT,
        `campo1` varchar(255),
        `campo2` varchar(255),
        `campo3` varchar(255),
        PRIMARY KEY (`id`)
      );
    


    y la inserción sería:

    $a = $this->db->query("INSERT INTO tabla (campo1, campo2, campo3) VALUES ('valor1', 'valor2', 'valor3')");
    


    como puedes ver se omite la id en la inserción pues es autonumerica.

    Como dato adicional, debes dejar de utilizar la librería mysql ya que esta deprecada en versiones actuales de php, debes utilizar mysqli o pdo.

    Saludos.
      Votos: 1 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com