
19/04/2012, 08:17
|
| | Fecha de Ingreso: abril-2012
Mensajes: 58
Antigüedad: 12 años, 11 meses Puntos: 0 | |
Respuesta: archivo csv php mysql hola linuxzero primero q todo muchas gracias por tu respuesta,yo ya tengo este codigo y me inserta el archivo csv
<?php
//se tiene el archivo que se subio
foreach($_FILES as $campo => $texto)
eval("\$".$campo."='".$texto."';");
//se accede al archivo por Files
?>
<table align="center">
<tr>
<td>
<b>Nombre:</b>: <?php echo $_FILES["archivo"]["name"]?>
<b>Tipo:</b>: <?php echo $_FILES["archivo"]["type"]?>
<b>Subida:</b>: <?php echo ($_FILES["archivo"]["error"]) ? "Incorrecta" : "Correcta"?>
<b>Tamaño:</b>: <?php echo $_FILES["archivo"]["size"]?> bytes
</td>
</tr>
</table>
<?php
function Conectarse() //Función para conectarse a la BD
{
if (!($link=mysql_connect("localhost","root",""))) { //Cambia estos datos
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("recursoshumanos",$link)) {
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
//si se envio y se subio correctamente
if (isset($_FILES["archivo"]) && is_uploaded_file($_FILES['archivo']['tmp_name']))
{
$row = 0;
//lo abro en modo lectura
$fp = fopen($_FILES['archivo']['tmp_name'], "r");
//lo abro y lo vectorizo a data
while (!feof($fp))
{
//lo lee separado por tabulacion
//$data = explode(" ", fgets($fp));
//lo lee separado por punto y coma
$data = explode(";", fgets($fp));
foreach ($data as $data) {
$campos = explode("|||", $data);
}
$num = count($data); //Cuenta cuantos campos contiene la linea (el array 'data')
$row++;
$cadena = "insert into dato(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) values("; //Cambia los valores 'CampoX' por el nombre de tus campos de tu tabla y colócales los necesarios
for ($c=0; $c < $num; $c++)
{ //Aquí va colocando los campos en la cadena, si aun no es el último campo, le agrega la coma (,) para separar los datos
if ($c==($num -1))
$cadena = $cadena."'".$data[$c] . "'";
else
$cadena = $cadena."'".$data[$c] . "',";
}
$cadena = $cadena. ");"; //Termina de armar la cadena para poder ser ejecutada $cadena = $cadena.
echo $cadena."<br>"; //Muestra la cadena para ejecutarse
$enlace=Conectarse();
$result=mysql_query($cadena, $enlace); //Aquí está la clave, se ejecuta con MySQL la cadena del insert formada
mysql_close($enlace);
//lee el ducumento completo
var_dump($data);
//se imprime un solo dato
echo "<br/>Imprimir el primer dato solo: {$data[0]}<br/>";
//ojo cada vuelta devuleve un linea completa de cvs
}
//muestra si el a r chivo fue recorrido
echo "Archivo recorrido";
} else
echo "Error de subida";
?>
como realizaría el insert?? |