16 diciembre, 2018
Abrimos el archivo CSV con fgetcsv luego recorremos sus elementos para almacenarlos en una Base de Datos MYSQL usando el Lenguaje PHP y los mostramos
Suscríbete a nuestro canal en Youtube
SuscríbirseEn este tutorial de PHP y Mysql vamos a llenar una tabla de una base de datos mysql con los datos de un archivo CSV, empecemos con:
Y listo.
Debemos tener una Base de datos en Mysql con el nombre de codea con una tabla vacia con la estructura para insertar los datos desde el CSV
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;
ALTER TABLE `agenda`
ADD PRIMARY KEY (`id`);
ALTER TABLE `agenda`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
Creamos un archivo llamado conexion.php donde establecemos la conexión a la base de datos Mysql. Esta clase permite conectarnos a la base de datos bdcsv ademas de proveernos de dos métodos para manipular datos como es
<?php
class DBconexion{
private $host ="localhost";
private $usuario="root";
private $clave ="";
private $db ="codea";
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 insert($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 search($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;
}
}
?>
En el archivo index.php instanciamos a la base de datos, luego la abrimos creando un objeto que lo almacenaremos en la variable $user
<?php
include "conexion.php";
$user = new DBconexion();
....
?>
Debemos tener el mismo directorio el archivo .CSV con los datos listos para ser importados, para este tutorial tenemos la siguiente estructura del archivo llamado agenda.csv
Nombre,Apellido,Dni,Celular
Juan,Contreras,42882321,950092356
Adriana,Angelina,42312331,950043022
Olivia,Perkins,32876523,950064545
Natalia,Vergara,42009321,998920022
Como puede notar esta los datos esta separados por comas (,) pero ademas vemos que tienen una distribución línea a línea, donde cada línea representa un registro correspondiente a los datos de una persona de la agenda.
Modificamos el archivo index.php para agregar la apertura del archivo agenda.csv
$fp = fopen ("agenda.csv","r");
En el archivo index.php insertamos los datos en los campos de la tabla agenda, para tal efecto usamos la estructura repetitiva while.
while ($data = fgetcsv ($fp, 100, ",")):
....
endwhile;
La siguiente usa la consulta para insert() para insertar nuevos registros en la tabla agenda.
$u=$user->insert("agenda","'".$data[0]."','".$data[1]."','".$data[2]."','".$data[3]."'");
fclose ($fp);
....
$user = null;
/// MOSTRAR LOS REGISTROS INSERTADOS
$u = $user->search("agenda","1");
$user = null;
$html = "<table border=1>";
$html .= "<tr>
<th>NOMBRE</th>
<th>APELLIDOS</th>
<th>DNI</th>
<th>CELULAR</th>
</tr>";
foreach ($u as $data)
$html.= "<tr>
<td>".$data['nombre']."</td>
<td>".$data['apellidos']."</td>
<td>".$data['dni']."</td>
<td>".$data['celular']."</td>
</tr>";
$html.="</table>";
echo $html;
<?php
include "conexion.php";
$user = new DBconexion();
// IMPORTAR CSV A LA TABLA AGENDA
$fp = fopen ("agenda.csv","r");
while ($data = fgetcsv ($fp, 100, ",")):
$u=$user->insert("agenda","'".$data[0]."','".$data[1]."','".$data[2]."','".$data[3]."'");
endwhile;
fclose ($fp);
/// MOSTRAR LOS REGISTROS INSERTADOS
$u = $user->search("agenda","1");
$user = null;
$html = "<table border=1>";
$html .= "<tr>
<th>NOMBRE</th>
<th>APELLIDOS</th>
<th>DNI</th>
<th>CELULAR</th>
</tr>";
foreach ($u as $data)
$html.= "<tr>
<td>".$data['nombre']."</td>
<td>".$data['apellidos']."</td>
<td>".$data['dni']."</td>
<td>".$data['celular']."</td>
</tr>";
$html.="</table>";
echo $html;
?>
Para mostrar los datos generamos dinámicamente una tabla html
Leido 9654 veces
Curso MVC PHP y MySQL aprende a desarrollar una página web con el modelo vista controlador
Descarga del código fuente
USD 10.00
© Copyright Codea App | LATAM | 2020 - 2024