Foros del Web » Programando para Internet » PHP »

Vaciar un archivo CSV a una tabla con php

Estas en el tema de Vaciar un archivo CSV a una tabla con php en el foro de PHP en Foros del Web. Buenas noches o días según corresponda. Mi problema: Necesito que los usuarios carguen una informacion a una base de datos a través de un archivo ...
  #1 (permalink)  
Antiguo 28/04/2010, 16:59
 
Fecha de Ingreso: noviembre-2009
Ubicación: Valencia
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Vaciar un archivo CSV a una tabla con php

Buenas noches o días según corresponda.

Mi problema:
Necesito que los usuarios carguen una informacion a una base de datos a través de un archivo CSV; pero que la información vaya directamente a un tabla. entonces se me ocurrió que la manera mas fácil era importar los archivos a un directorio y de allí crear un script que los cargue automáticamente. y es específicamente esa parte de mi plan el que no logro concebir.

en si la quiero leer del pc del usuario y cargarla a la tabla temporal de mi BD

Lo que he conceguido hasta ahora:
es que cargue el archivo a un directorio del servidor.

estos son mis archivos:


index.html
<?php
session_start();
include ('variables.php');


?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<meta HTTP-EQUIV="Expires" CONTENT="Mon, 04 Dec 1999 21:29:02 GMT">
<meta name="Keywords" content="...">
<meta name="Description" content="Sinceracion de nominas 2010">
<title>qqqqqqqqqqqqqqqqqqqqqqqqqqq</title>
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 20px;
margin-bottom: 25px;
}
.Estilo1 {font-size: 10px}
.Estilo2 {
color: #FF0000;
font-weight: bold;
}
-->
</style></head>

<body>
<div align="center">
<p>&nbsp;</p>
<form action="sincerar.php" method="post" enctype="multipart/form-data">
<table width="722" height="187" border="0">
<tr>
<td colspan="3"><h1 align="center">Sqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq </h1>
<h5 align="center">PA' QUE SEAN SERIOS </h5></td>
</tr>
<tr>
<td height="51" colspan="2"><span class="Estilo2">Seleccione el tipo de nomina:
<select name="tabla">
<option>becados</option>
<option>facilitadores_r1</option>
<option>facilitadores_r2</option>
<option>supervisores</option>
</select>
</span></td>
<td width="271"><label> <span class="Estilo2"><br />
Accion:</span><br />
<span class="Estilo1">
<input name="accion" type="radio" value="activos" />
ACTIVOS<br />
<input name="accion" type="radio" value="eliminar" />
ELIMINAR</span><br />
</label></td>
</tr>
<tr>
<td width="198">
<span class="Estilo2"><br />
Seleccione el archivo base:</span><br />
<input name="archivo" type="file" class="casilla" id="archivo" size="35" />
<input name="action" type="hidden" value="upload" />
</td>
<td width="231">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>

</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
<p>&nbsp;</p><p>&nbsp;</p>
<p>
<input type="submit" name="Submit" value="Sincerar" />
</p>
</form>

</div>
</body>
</html>




sincerar.php

<?php
$status = "";
if ($_POST["action"] == "upload") {
// obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];


if ($archivo != "") {
// guardamos el archivo a la carpeta files
$destino = "files/".$archivo;
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status = "Archivo subido: <b>".$archivo."</b>";
} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error al subir archivo";
}
}

include ('data_conect.php');
include ('variables.php');

$arrResult = array();
$arrLines = file( 'files/facilitadores.csv' );
foreach( $arrLines as $line ) {
$arrResult[] = explode( ',', $line );
}

$sql = "SELECT tabla1.`NACIONALIDAD`,tabla1.`CEDULA`,tabla1.`PRIM ER APELLIDO`,tabla1.`SEGUNDO APELLIDO`,tabla1.`PRIMER NOMBRE`,tabla1.`SEGUNDO NOMBRE`,tabla1.`FECHA DE INGRESO`,tabla1.`FECHA DE ABONO`,tabla1.`NUMERO`,tabla1.`ESTADO`,tabla1.`BAN CO`,tabla1.`MUNICIPIO` FROM ".$tabla." AS tabla1,temporal AS tabla2 WHERE tabla1.CEDULA=tabla2.CEDULA";

$bus = mysql_query($sql) or die(mysql_error());

while ($row=mysql_fetch_array($bus))
{
$sql3= "INSERT INTO ".$tabla.""._."".$accion." (`NACIONALIDAD`,`CEDULA`,`PRIMER APELLIDO`,`SEGUNDO APELLIDO`,`PRIMER NOMBRE`,`SEGUNDO NOMBRE`,`FECHA DE INGRESO`,`FECHA DE ABONO`,`NUMERO`,`ESTADO`,`BANCO`,`MUNICIPIO`) VALUES ('".$row['NACIONALIDAD']."', '".$row['CEDULA']."', '".$row['PRIMER APELLIDO']."', '".$row['SEGUNDO APELLIDO']."', '".$row['PRIMER NOMBRE']."', '".$row['SEGUNDO NOMBRE']."', '".$row['FECHA DE INGRESO']."', '".$row['FECHA DE ABONO']."','".$row['NUMERO']."', '".$row['ESTADO']."', '".$row['BANCO']."', '".$row['MUNICIPIO']."')";

$bus3 = mysql_query($sql3) or die(mysql_error());
}
header("location: index.html");
?>
  #2 (permalink)  
Antiguo 28/04/2010, 17:07
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Vaciar un archivo CSV a una tabla con php

Lo primero es acordarte que PHP corre en el servidor. No vas a poder leer un archivo que se encuentre en la computadora del cliente. Lo segundo la mejor forma de trabajar un archivo csv es usando la función fgetcsv. Y luego lo vas ingresando en el servidor.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 28/04/2010, 17:15
 
Fecha de Ingreso: noviembre-2009
Ubicación: Valencia
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Respuesta: Vaciar un archivo CSV a una tabla con php

eso mismo pense y por eso tengo la funcion que carga el archivo desde el cliente al servidor y lo guarda en el directorio files la yuda que necesito es como cargo ese archivo ya guardo en el server a las tablas de la bd
  #4 (permalink)  
Antiguo 25/05/2010, 10:12
 
Fecha de Ingreso: mayo-2010
Mensajes: 2
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Vaciar un archivo CSV a una tabla con php

Hola Apokryphos
lo que tienes que hacer es en un archivo procesador de calculo ya sea en windows "excel" o linux "open office" en los primeros cuadros escribe la misma cabecera de tus tablas de tu base de datos, digamos en tu base de datos tienes una tabla llamada NACIONALIDAD y sus dos campos son "nom_nacionalidad" y "tipo_nacionalidad" y debajo comienzas a rellenar a tu gusto,
ejemplo:

tabla NACIONALIDAD

| codigo_nacionalidad | "descrip_nacionalidad"|

nac0001 | Peruano
nac0002 | Espaniol
nac0003 | Ingles
nac0004 | Japones
nac0005 | Aleman


cuando esto esta en un archivo de procesador de calculo lo pones guardar como y seleccionas el archivo .CSV en comas

luego de obtener ese archivo vas a tu base de datos y en esa tabla seleccionado lo que haces es poner la opcion de importar archivo y eliges el archivo cargado con tu informacion con extencion .CSV, por ejemplo el archivo se llama nacionalidades.csv y seleccionas el boton importar. y listo

haces una consulta

select * from nacionalidad

y ya estara cargado todo lo que editaste en excel o open office

si tiene alguna duda consulte que estamos para responderle.

Etiquetas: csv, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:18.