Como fazer upload de um arquivo .csv e importar para o banco de dados
Construí um arquivo para importar os dados de um arquivo csv para um banco de dados mysql e quero fazer uma pagina para fazer o upload desses arquivos e posteriormente importar.
<!doctype html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Simulado em Rede</title>
</head>
<body>
<br/>
<form method="POST" action="importcsv.php">
<!-- Input file, com o atributo multiple para
indentificar que o usuário vai poder adicionar
mais de um arquivo por vez -->
<input type=file multiple name="arquivos[]"/>
<br/>
<input type="submit" name="Enviar"/>
</form>
<br/>
</body>
</html>
<html>
<head>
<title>Simulado em Rede</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<h1>Importação CSV</h1>
<?php
include("../connect.php");
#Indice de identificacao da ordem de tratamento do arquivos no servidor
$i = 0;
#Analisa cada arquivo
foreach ($_FILES["arquivos"]["error"] as $key => $error) {
# Definir o diretório onde salvar os arquivos.
$destino = "diretorio_destino/" . $_FILES["arquivos"]["name"][$i];
#Move o arquivo para o diretório de destino
move_uploaded_file( $_FILES["arquivos"]["tmp_name"][$i], $destino );
#Próximo arquivo a ser analisado
$i++;
//$nome_arquivo = "../100.csv";
//$objeto = fopen($nome_arquivo, 'r');
$objeto = fopen($i, 'r');
while(($dados = fgetcsv($objeto, 1000, ",")) !== FALSE){
$str = str_replace(",", ".", $dados, $count);
$sql = "INSERT INTO simrede
(
codsiem,nmaluno,nmescola,serie,simulado,datacad,
nota1,nota2,nota3,nota4,nota5,nota6,nota7,nota8,
nota9,nota10,nota11,nota12,nota13,nota14,nota15,
nota16,nota17,nota18,nota19,nota20
)
VALUES
(
'$dados[0]','$dados[1]','$dados[2]','$dados[3]','Simuado em rede-1',
CURDATE(),'$str[10]','$str[11]','$$str[12]','$str[13]',
'$str[14]','$str[15]','$str[16]','$str[17]','$str[18]',
'$str[19]','$str[20]','$str[21]','$str[22]','$str[23]',
'$str[24]','$str[25]','$str[26]','$str[27]','$str[28]',
'$str[29]'
)";
mysql_query($sql) or die(mysql_error());
//echo $sql."br";
/*echo '<pre>';
print_r($dados);
print_r($str);
echo '</pre>';*/
}
fclose($objeto);
echo "Arquivo Enviado.";
?>
</body>
</html>Discussão (5)
Carregando comentários...