Ir para conteúdo

POWERED BY:

Arquivado

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

deckards2bibi

upload de arquivos txt

Recommended Posts

bom tenhu um arquivo txt que funciona da seguinte forma

 

carlos;niteroi;riodejaneiro

jose;saopaulo;saopaulo

maria;belem;para

 

e assim consecutivamente nao tem um numero exato de registros.

bom e gostaria de fazer um upload desse arquivo e depois queria

que fosse salvo no banco de dados cada um em seu determinado local sem o ;

 

Nome cidade estado

carlos niteroi rio

jose sp saopaulo

maria belem para

 

acho que deu pra explica direito

to nessa situação ja pesquisei algumas coisa mas nao to obtendo resultado satisfatorio

 

 

se alguem poder me da essa ajuda agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, organize melhor esse txt, dessa maneira por exemplo:

nome;cidade;estado|
nome2;cidade2;estado2|
nome3;cidade3;estado3

Repare que o | marca final de registro e o ; separa os campos.

Depois, fiz um código pra você:

$arquivo = fread(fopen("txt.txt", 'r'), filesize("txt.txt"));
$registros = explode('|', $arquivo);
foreach($registros as $registros_){
$campo = explode(';', $registros_);
$nome = $campo[0];
$cidade = $campo[1];
$estado = $campo[2];
$sql = mysql_query("INSERT INTO usuarios (nome, cidade, estado) VALUES ('$nome', '$cidade', '$estado')");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gabriel Jacinto, você não precisa desse separador '|' para demarcar o final de uma linha, pois com a função file você pode pegar este arquivo para um array, onde cada linha é um elemento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gabriel Jacinto, você não precisa desse separador '|' para demarcar o final de uma linha, pois com a função file você pode pegar este arquivo para um array, onde cada linha é um elemento.

 

 

como eu faria isso meu caro

ja chequei a este ponto olhe so

 

primeiro tenho a pagina do form

que esta o codigo aqui abaixo

<form action="envia.php" method="post" enctype="multipart/form-data">
<input type="file" name="upload">
<input type="submit" value="enviar" />
</form>

 

 

depois de feito isso com o script php conseguir fazer o upload do arquivo para uma pasta

chamada upload no msm arquivo e os arquivos sao salvos la

e nao posso por o | como o amigo acima falou pq esse é o arquivo da empresa.

 

bom com o codigo abaixo ele salva o txt

mas nao manda o msm para o banco de dados

eu queria que no tempo que ele fizesse o upload mandasse todo o arquivo separado por campo para o banco de dados

no momento ele so salva.

segue o codigo abaixo

 

<?php
$servidor = "localhost";
$usuario = "root"; 
$senha = "";
$banco = "importartxt";
$con = mysql_connect($servidor,$usuario,$senha) or die ("erro ao conectar ao banco de dados");
$db = mysql_select_db($banco, $con)or die ("erro ao seleciona a base de dados");


$nome_temporario = $_FILES["upload"]["tmp_name"];
$nome_real = $_FILES["upload"]["name"];
copy($nome_temporario,"upload/$nome_real");

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom gente fiz algumas evoluçoes sobre esse assunto mas ainda há algo que nao funciona

 

primeiramente obrigado ao povo que me deu uns toque

bom modificando o codigo percebi algumas coisas

 

esse script embaixo ele salva o arquivo na pasta e alem disso coloca no banco de dados mas como eu falei ele nao salva todas as linhas do codigo

apenas a primeira e eu nao posso mexer no txt pois e padrao da empresa

 

$nome_temporario = $_FILES["upload"]["tmp_name"];
$nome_real = $_FILES["upload"]["name"];
copy($nome_temporario,"upload/$nome_real");


$arquivo = "upload/".$nome_real;
$fp = fopen($arquivo, 'r');
$conteudo = fread($fp, filesize($arquivo));
$rePonto = explode(';', $conteudo);
$sql = mysql_query("INSERT INTO imptxt (nome,cidade,estado) VALUES ('$rePonto[0]','$rePonto[1]','$rePonto[2]')");

Compartilhar este post


Link para o post
Compartilhar em outros sites

poise gente eu consegui fazer oque queria so que apenas

nao pega tudo que ta no txt

ele so grava a 1 linha o resto nao grava como faria pra gravar o resto algum comando ou algo do tipo

 

o codigo no post acima esta OK

so falta ler o resto da pagina

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ve se ajuda:

 

$file = fopen("a.txt", "r");

$i = 0;
while (!feof($file)) {
   $members[] = fgets($file);
}
fclose($file);


foreach ($members as $x){
$campo = explode(';', $x);
$nome = $campo[0];
$cidade = $campo[1];
$estado = $campo[2];

   echo 'Meu nome: '.$nome.', Minha cidade: '.$cidade.', Meu estado: '.$estado.'';
// Ou seja: mysql_query("INSERT INTO tabela (nome, cidade, estado) VALUES ($nome, $cidade, $estado)");
}

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ve se ajuda:

 

$file = fopen("a.txt", "r");

$i = 0;
while (!feof($file)) {
   $members[] = fgets($file);
}
fclose($file);


foreach ($members as $x){
$campo = explode(';', $x);
$nome = $campo[0];
$cidade = $campo[1];
$estado = $campo[2];

   echo 'Meu nome: '.$nome.', Minha cidade: '.$cidade.', Meu estado: '.$estado.'';
// Ou seja: mysql_query("INSERT INTO tabela (nome, cidade, estado) VALUES ($nome, $cidade, $estado)");
}

:thumbsup:

 

 

poxa meu caro nao ta rolando não mas vlw a ajuda

assim esse codigo que me deram as dicas aqui ta rolando mas tem duas coisas que ocorrem que nao deveriam

segue abaixo o codigo

 

$nome_temporario = $_FILES["upload"]["tmp_name"];
$nome_real = $_FILES["upload"]["name"];
copy($nome_temporario,"upload/$nome_real");


$arquivo = "upload/".$nome_real;
$fp = fopen($arquivo, 'r');
$conteudo = fread($fp, filesize($arquivo));
$rePonto = explode(';', $conteudo);


$sql = mysql_query("INSERT INTO imptxt (nome,cidade,estado) VALUES ('$rePonto[0]','$rePonto[1]','$rePonto[2]')");

 

 

as duas coisas que da errado

1º ele salva a parte de baixo por exemplo

 

o txt e assim

 

nome;cidade;estado

nome;cidade;estado

 

como salva = nome cidade estadonome

 

2º ele nao salva os campos linha por linha assim

o txt e assim

 

nome;cidade;estado

nome;cidade;estado

 

como salva = nome cidade estado

 

como deveria salvar = nome cidade estado

nome cidade estado

 

 

 

agradeço muito quem poder me da essa força

Compartilhar este post


Link para o post
Compartilhar em outros sites

poxa meu caro nao ta rolando não mas vlw a ajuda

assim esse codigo que me deram as dicas aqui ta rolando mas tem duas coisas que ocorrem que nao deveriam

segue abaixo o codigo

 

$nome_temporario = $_FILES["upload"]["tmp_name"];
$nome_real = $_FILES["upload"]["name"];
copy($nome_temporario,"upload/$nome_real");


$arquivo = "upload/".$nome_real;
$fp = fopen($arquivo, 'r');
$conteudo = fread($fp, filesize($arquivo));
$rePonto = explode(';', $conteudo);


$sql = mysql_query("INSERT INTO imptxt (nome,cidade,estado) VALUES ('$rePonto[0]','$rePonto[1]','$rePonto[2]')");

 

 

as duas coisas que da errado

1º ele salva a parte de baixo por exemplo

 

o txt e assim

 

nome;cidade;estado

nome;cidade;estado

 

como salva = nome cidade estadonome

 

2º ele nao salva os campos linha por linha assim

o txt e assim

 

nome;cidade;estado

nome;cidade;estado

 

como salva = nome cidade estado

 

como deveria salvar = nome cidade estado

nome cidade estado

 

 

 

agradeço muito quem poder me da essa força

 

Mas você não quer pegar o conteudo do arquivo:

 

nome;cidade;estado

nome;cidade;estado

 

e inserir no banco de dados, 1 linha = 1 insert?

Compartilhar este post


Link para o post
Compartilhar em outros sites

oque eu quero na verdade e isso

 

o arquivo e composto de

 

nome;cidade;estado

nome;cidade;estado

 

e assim por diante

 

eu quero fazer o seguinte

pega esse txt

e fazer ele salvar no banco de dados

 

cada um em sua coluna

 

Nome cidade estado

fulano belem para

fulano rio riodejaneiro

 

 

so que o codigo que eu postei

ele salva so que so a primeira linha

alem de salvar a primeira linha ele pega a parte de baixo

que ainda ta com ;

 

fulano belem parafulano

Compartilhar este post


Link para o post
Compartilhar em outros sites

oque eu quero na verdade e isso

 

o arquivo e composto de

 

nome;cidade;estado

nome;cidade;estado

 

e assim por diante

 

eu quero fazer o seguinte

pega esse txt

e fazer ele salvar no banco de dados

 

cada um em sua coluna

 

Nome cidade estado

fulano belem para

fulano rio riodejaneiro

 

 

so que o codigo que eu postei

ele salva so que so a primeira linha

alem de salvar a primeira linha ele pega a parte de baixo

que ainda ta com ;

 

fulano belem parafulano

 

O codigo que eu postei, faz exatamente isso que você quer.. rode ele do jeito que eu postei e adapte com o resto do seu código.

 

O que eu postei faz exatamente isso que você precisa.. rode ele separado pra ti ver.. depois adapte ele pro teu codigo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O codigo que eu postei, faz exatamente isso que você quer.. rode ele do jeito que eu postei e adapte com o resto do seu código.

 

cara vlw me ajudou muito msm.

deve ser o sono eu esqueci de fechar o codigo

 

agora fui analisar e ta rodando tudo OK

 

sera que tu poderia me descrever o codigo

 

que tem muitas coisas que desconheço ai

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.