Importar csv con formulario

Importar csv con formulario / Mariano J. Muzas HTML5, CSS3, PHP, Mysql, bbdd, javascript, JQuery, JQuerymobile, Bootstrap, Material Design, WordPress, Newsletter, Api de Facebook, Api de twitter, PrestaShop.

Importar csv con formulario

Subir un archivo CSV a nuestra base de datos desde un formulario.

Este proyecto es perfecto para cuando el cliente desea realizar subidas masivas de datos desde el "admin", sin necesidad de realizarlo desde la consola de "phpMyAdmin".

Con un formulario subimos el archivo CSV, con action "update-archive.php", en este archivo realizamos las comprobaciones pertinentes y redireccionamos con "location" al index, mostrando un mensaje de aviso.

Formulario


<form action="update-archive.php" method="post" enctype="multipart/form-data">
   <div class="form-group">
       Importar Archivo : <input type="file" name="sel_file">
   </div>
   <input name="Envio" type="hidden" id="Envio" value="1" />
   <div class="form-group">
       <input type="submit" name="submitcsv" class="btn btn-primary col-sm-12" value="Cargar csv">
   </div>
</form>
 

update-archive.php

	//conexión con la base de datos
	include "./inc/conexion.php";
	if(isset($_POST["submitcsv"])) {
	         $fname = $_FILES["sel_file"]["name"]; //tomamos el csv
	         $chk_ext = explode(".",$fname);
	         
	         if(strtolower(end($chk_ext)) == "csv") {
	             //Comprobamos que sea formato csv
	             $filename = $_FILES["sel_file"]["tmp_name"];
	             $handle = fopen($filename, "r");
	        
	             while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { //cambiar "," por ";" segun formato.
	               //Insertamos los datos en la base de datos
	                $sql = "INSERT INTO nombre_bbdd (nombre1, nombre2, nombre3) values("$data[0]","$data[1]","$data[2]")";
	                $result=mysqli_query($conexion, $sql);
	             }
	             fclose($handle); //cerramos el archivo
	             $mng="Archivo subido correctamente";
	             
	         }else{
	            //si aparece esto es posible que el archivo no tenga el formato adecuado, inclusive cuando es cvs.
	            $mng="Error al subir archivo";
	         }
	    }
	    header("location:index.php?mng=$mng");

index.php


	//Llamamos al mensaje para poder mostrarlo en el index.
	$mng="";
    if(isset($_GET["mng"])){
        $mng=$_GET["mng"];
    }

HTML de mng

<p class="mng"><?=$mng?></p>

Mariano J.

Escribe un comentario

Tu email no se hará visible