En esta entrada rescato el código para importa un fichero CSV o TXT a tu base de datos mysql desde una formulario dentro de tu página web.
Basicamente el funcionamiento que queremos sería así, ponemos un formulario en la página web desde el que seleccionaremos un TXT o CSV y lo importaremos a nuestra base de datos.
Esta imagen muestra como sería esa parte del formulario.
Este sería el código para subir el CSV o TXT , en este caso vamos a subir a importar unas 1000 filas de una sola columna.
<form enctype='multipart/form-data' action='/desarrollo/wsld/subir.php' method='post' id="form-id-subir" > Selecciona el fichero a importar:<br /> <input size='50' type='file' name='filename'><br /> <input type="hidden" name="subir" value="admin1"> <br /> <a id="descargarA" onclick="$('#form-id-subir').submit();" class="button">Subir CSV / TXT </a> </form> <script> var form = document.getElementById("form-id-subir"); document.getElementById("descargarA").addEventListener("click", function () { form.submit(); }); </script> |
Este sería el código PHP al que tu formulario llamará y al que enviará los datos que hay en el fichero txt.
El TXT del ejemplo tendrá unas 1000 filas y una sola columna. Para añadir columnas utiliza el Array $data[0], $data[1] , … .
function subir(){ $file_type = $_FILES['file']['type']; $servername = "localhost"; $username = "-----"; $password = "-----"; $database = "-----"; // Create connection if (!$conn = mysql_connect($servername,$username,$password)) { echo 'No pudo conectarse a mysql'; exit; } if (!mysql_select_db($database, $conn)) { echo 'No pudo seleccionar la base de datos'; exit; } //Upload File if (isset($_POST['subir'])) { if (is_uploaded_file($_FILES['filename']['tmp_name'])) { echo "<h1>" . "File ". $_FILES['filename']['name'] ." subido." . "</h1>"; echo "<h2>Datos subidos:</h2>"; readfile($_FILES['filename']['tmp_name']); } //Import uploaded file to Database $handle = fopen($_FILES['filename']['tmp_name'], "r"); while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $import="insert into Tabla_1 (campo_1) values ('".$data[0]."')"; mysql_query($import) or die(mysql_error()); } fclose($handle); print "Import hecho!"; //view upload form } } |
Y listo, ¿fácil no?. Ya puedes importar todos los datos que quieras a tus tablas desde un formulario hecho en tu web.
Otro usuarios llegaron aquí buscando:
- importar csv a mysql desde php
- importar datos csv a mysql con php
- importar archivo csv a mysql desde php
- subir archivo csv a mysql con php
- subir csv a mysql php