Subir un archivo CSV, abrirlo y recorrer sus elementos para almacenarlos en una Base de Datos MYSQL usando el Lenguaje PHP, usaremos la función fgetcsv
Cómo almacenar los datos de un CSV a una Base de Datos MYSQL
En este tip vamos a llenar una base de datos mysql con un archivo CSV para tal efecto tenemos que realizar las siguientes operaciones
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Pauta csv</title>
</head>
<body>
<?php
if(isset($_FILES['csv'])):
include "conexion.php";
$user = new ApptivaDB();
$carpeta = "uploads/";
$nombre = time()."_".$_FILES['csv']['name'];
move_uploaded_file($_FILES['csv']['tmp_name'], "$carpeta$nombre");
$fp = fopen ($carpeta.$nombre,"r");
$linea=false;
while ($data = fgetcsv ($fp, 1000, ",")):
if($linea)
$u=$user->insertar("agenda","'".$data[0]."','".$data[1]."','".$data[2]."','".$data[3]."'");
$linea=true;
endwhile;
fclose ($fp);
echo "<p>La importación del archivo CSV fue un éxito</p>";
$u=$user->buscar("agenda","1");
$html= "<ul>";
foreach ($u as $data)
$html.= "<li>Nombre :".$data['nombre']." Apellidos :".$data['apellidos']." DNI :".$data['dni']." Celular :".$data['celular']."</li>";
$html.="</ul>";
echo $html;
$user=null;
else:?>
<h1>UPLOAD CSV CON PHP</h1>
<form method="post" enctype="multipart/form-data">
<input type="file" name="csv" id="csv" /><br>
<input type="submit" value="subir" />
</form>
<?php endif; ?>
</body>
</html>
Para mostrar los datos genera dinámicamente una lista html
Debemos crear una base de datos, le pondremos el nombre de bdcsv y agregamos una tabla con el nombre de agenda:
CREATE TABLE `agenda` (
`id` int(11) NOT NULL,
`nombre` varchar(50) NOT NULL,
`apellidos` varchar(50) NOT NULL,
`dni` varchar(8) NOT NULL,
`celular` varchar(9) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Índices para tablas volcadas
--
--
-- Indices de la tabla `agenda`
--
ALTER TABLE `agenda`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT de las tablas volcadas
--
--
-- AUTO_INCREMENT de la tabla `agenda`
--
ALTER TABLE `agenda`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
Este archivo agenda.csv tiene la siguiente estructura
Nombre,Apellido,Dni,Celular
Juan,Contreras,,42882321,950092356
Adriana,Angelina,42312331,950043022
Fatro,Ppiroue,32876523,950064545
Natalia,Vergara,42009321,998920022
EL ARCHIVO DE CONEXION
Esta clase permite conectarnos a la base de datos bdcsv ademas de proveernos de dos métodos para manipular datos como es
<?php
class ApptivaDB{
private $host ="localhost";
private $usuario="root";
private $clave ="";
private $db ="bdcsv";
public $conexion;
public function __construct(){
$this->conexion = new mysqli($this->host, $this->usuario, $this->clave,$this->db) or die(mysql_error());
$this->conexion->set_charset("utf8");
}
public function insertar($tabla, $datos){
$resultado = $this->conexion->query("INSERT INTO $tabla VALUES (null,$datos)") or die($this->conexion->error);
if($resultado)
return true;
return false;
}
public function buscar($tabla, $condicion){
$resultado = $this->conexion->query("SELECT * FROM $tabla WHERE $condicion") or die($this->conexion->error);
if($resultado)
return $resultado->fetch_all(MYSQLI_ASSOC);
return false;
}
}
?>
Y listo.
No tiene descargable
Visitado 1879 veces | Publicado hace 2 años
© Todos los derechos reservados CODEA APP | Cursos de programación avanzados con proyectos reales | 2020 - 2021