Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Anderson web

[Resolvido] importar txt para mysql

Recommended Posts

Bom dia Pessoal ,

 

Tenho um cliente que tem uma aplicação(desktop), o mesmo que fazer uma importação para um novo sistema web, o sistema(dektop) dele gera apenas arquivo no formato txt.

 

(aparece os dados do funcionário e não os titulos)

nome do arquivo: arquivos/teste.txt

matricula do funcionário

nome

endereço

...

 

Gostaria de saber como faço para pegar esse arquivo com essas informações e importar para o mysql.

 

Tentei da seguinte forma abaixo, mas os dados são inseridos apenas em um coluna.

 

<?php 
$host = "localhost"; 
$user = "root"; 
$password = ""; 



$conexao = mysql_connect($host, $user, $password) or die(mysql_error()); 
$banco = mysql_select_db($db) or die(mysql_error()); 

$arquivo = 'arquivos/teste.txt'; 
$arq = fopen($arquivo,'r'); 

while(!feof($arq)) 

$linha[] = fgets($arq); // cria um array com o conteudo do arquivo 

$sql = "INSERT INTO funcionario (matricula, nome) VALUES ('$linha[0]', '$linha[1]')"; 
$result = mysql_query($sql) or die(mysql_error()); 

?>

 

 

Muito grato pela atenção de todos e obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O txt está com uma informação por linha? No caso, cada funcionário tem seu txt?

 

Considerando o contexto questionado acima, você teria o código mais ou menos assim:

 


//lê conteúdo do arquivo
$arquivo = 'arquivos/teste.txt'; 
$arq = fopen($arquivo,'r'); 
$conteudo = fread ($arq, filesize ($arquivo));
fclose ($arq);

//"quebra" conteúdo quando encontrar fim de linha. Retorna em array
$linha = explode('\n', '$conteudo');

//para debugar, e ver o resultado do conteúdo quebrado
//esse código deve ser removido posteriormente
echo "<pre>";
print_r($linha);
echo "</pre>";

 

Referências

http://www.php.net/manual/pt_BR/function.fopen.php

http://www.php.net/manual/pt_BR/function.fread.php

http://www.php.net/manual/pt_BR/function.explode.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dentro do arquivo txt tem a relação de todos os dados dos funcionários.

obrigado pela atenção.

 

Pesquisei com calma e achei a solução a seguir, obrigado pela atenção.

 

 

<?php
$host = "localhost"; 
$user = "root"; 
$password = ""; 

//$tabela = "funcionario"; 

$conexao = mysql_connect($host, $user, $password) or die(mysql_error()); 
$banco = mysql_select_db('teste') or die(mysql_error()); 


$arquivo = fopen ("arquivos/teste.txt", "r");
$i = 1;
while (!feof ($arquivo)) {
       $controle = $i % 6;
       $linha = fgets($arquivo, 4096);

       switch($controle) {
               case 1:
               $matricula = $linha;
               break;

               case 2:
               $nome = $linha;
               break;

               case 3:
               $endereco = $linha;
			 break;

			case 4:
               $cpf = $linha;
			 break;

			case 5:
               $admissao = $linha;

		    $sql = "INSERT INTO funcionario (matricula, nome, endereco,cpf,admissao) VALUES ('$matricula', '$nome', '$endereco','$cpf','$admissao')";
               $result = mysql_query($sql) or die(mysql_error());
       }
       $i++;

}
fclose ($arquivo);

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.