Ir para conteúdo

Arquivado

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

ffllaavviioo

Dados de txt pra mysql

Recommended Posts

Pessoal, tou desenvolvendo um site pra um cliente e ele quer inserir os funcionários da empresa. São pra lá de 500 funcionários. Ele tem um sistema interno e me deu um txt com os nomes dos funcionários e CPF. Bom, o que eu quero saber é o seguinte: como fazer pra passar estes dados pra o banco mysql? Existe algum jeito no php que faça isso automaticamente? Os dados estão mais ou menos assim:Fulano de tal <tab> 024375226-01Beltrano de bla <tab> 024375444-01Ou seja, nome completo <tab> CPF. É claro que esse <tab> é tabulação. :-PEntão? Como eu faria isso? Alguém tem algum código que mostre como se faz isso? Se não, me digam o que devo pesquisar.De ante-mão, Obrigado.Atenciosamente,Flávio Alencar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olhe... eu tive o mesmo problema.... com a diferença de serem mais de 10 dados ao inves de apenas nome e CPF... não sou um grande desenvolvedor, procuro apenas por resultados, por isto não ligue para a minha desestruturação e tente adaptar o seguinte script.... um amigo tinha uma tabela de 10 itens que ele queria transferir e alimentar PERIODICAMENTE um banco de dados com dados atualizados... os dados estavam em um sistema proprio, em CRYSTAL REPORT, que podia dar uma saida em XLS... no excel eu convertia para algo do tipo... separando tudo com ponto e virgula...1;A. DUARTE;REFRAÇÃO;C065;CURSO;Análise Crítica da Prescrição;Palestrante;Paciente Adaptado;12/09/2003;08:00;12:00;Aud. 5 - Oxalá 42;ABELARDO DE SOUZA COUTO JÚNIOR;PLÁSTICA OCULAR;C022;CURSO;Plástica Ocular 5;Coordenador(a);;10/09/2003;14:00;16:00;Aud. 8 - OmoluFUNCIONA...RUTGER!-----------------------------------<html><head><link rel="stylesheet" type="text/css" href="sisoft.css"></head><body><p align="center"><u><b><i><font face="Trebuchet MS" size="5">Atualização da Agenda</font></i></b></u><br><b><i><font face="Trebuchet MS" size="3" color=#ff0000>Esta atualização demorará alguns minutos</font></i></b><br> <i><font face="Trebuchet MS" size="1" color=#ff0000>Atualização Automática da Data</font></i></p><?PHP// aqui você substitui seus dados...$db_host='xxx.xxx.xxx.x'; $db_user='xxxxxx'; $db_pass='xxxxx'; $db_name='xxxxx';echo "<p class=\"msg\"><font color=#000000>Removendo dados anteriores...Aguarde!</font>\n"; $conexao = mysql_connect($db_host,$db_user,$db_pass); $db = mysql_select_db($db_name) or die ("Banco de Dados Inexistente!"); $query = "DROP TABLE consultax"; $result = mysql_query($query) or die ("Erro na remoção dos dados anteriores"); mysql_close();echo "Tabela removida!</p>\n";echo "<p class=\"msg\"><font color=#000000>Criando nova tabela de dados...Aguarde!</font>\n"; $conexao = mysql_connect($db_host,$db_user,$db_pass); $db = mysql_select_db($db_name) or die ("Banco de Dados Inexistente!"); $query = "CREATE TABLE consultax (id INT(5) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,nome VARCHAR(255),area VARCHAR(255),codAtiv VARCHAR(10),atividade VARCHAR(50),tema VARCHAR(255),funcao VARCHAR(50),subtema VARCHAR(255),data VARCHAR(10),horaInic VARCHAR(10),horaFim VARCHAR(10),local VARCHAR(50))"; $result = mysql_query($query) or die ("Erro na criação da nova tabela"); mysql_close();echo "Tabela recriada!<br></p>\n";echo "<p class=\"msg\"><font color=#000000>Abrindo arquivo de texto...Aguarde!</font>\n";$filename = "bdcons.txt";$contents = file($filename);$lenght = sizeof($contents);echo "Arquivo aberto. Numero de Registros do Arquivo: ", $lenght ,"</p>\n";echo "<p class=\"msg\"><font color=#000000>Explodindo registros nos campos...Aguarde!</font>\n";for ($counter=0; $counter < $lenght; $counter++) { $registros[$counter] = explode(";",$contents[$counter]); }echo "Registros separados!</p>\n";echo "<p class=\"msg\"><font color=#000000>Transferindo dados para variáveis do Banco de Dados...Aguarde!</font>\n"; //aqui, transfiro cada um dos campos de cada registro para a variavel correta//preparando os dados para inseri-los na tabela de dados... $i=0;$j=0;for ($counter=0; $counter < $lenght; $counter++) { $id[$j] = $registros[$counter][$i]; $i=$i+1; $nome[$j] = $registros[$counter][$i]; $i=$i+1; $area[$j] = $registros[$counter][$i]; $i=$i+1; $codAtiv[$j] = $registros[$counter][$i]; $i=$i+1; $atividade[$j] = $registros[$counter][$i]; $i=$i+1; $tema[$j] = $registros[$counter][$i]; $i=$i+1; $funcao[$j] = $registros[$counter][$i]; $i=$i+1; $subtema[$j] = $registros[$counter][$i]; $i=$i+1; $data[$j] = $registros[$counter][$i]; $i=$i+1; $horaInic[$j] = $registros[$counter][$i]; $i=$i+1; $horaFim[$j] = $registros[$counter][$i]; $i=$i+1; $local[$j] = $registros[$counter][$i]; $i=0; $j=$j+1; }$quant_reg = sizeof($id);echo "Variáveis carregadas com os dados do registro!</p>\n";echo "<p class=\"msg\"><font color=#000000>Atualizando valores para o Banco de Dados...Aguarde!</font>\n"; for ($i=0; $i < $quant_reg; $i++) { $idm = $id[$i]; $nomx = $nome[$i]; $ar = $area[$i]; $ca = $codAtiv[$i]; $at = $atividade[$i]; $tm = $tema[$i]; $fc = $funcao[$i]; $st = $subtema[$i]; $dt = $data[$i]; $hi = $horaInic[$i]; $hf = $horaFim[$i]; $lc = $local[$i]; $conexao = mysql_connect($db_host,$db_user,$db_pass); $db = mysql_select_db($db_name) or die ("Banco de Dados Inexistente!"); $query = "INSERT INTO consultax VALUES ('NULL','$nomx','$ar','$ca','$at','$tm','$fc','$st','$dt','$hi','$hf','$lc')"; $result = mysql_query($query) or die ("Houve erro na inserção dos novos dados!"); mysql_close(); }echo "Banco de Dados Atualizado!<br></p>\n";echo "<p class=\"msg\"><font color=#000000>Atualizando a data<br></p>\n";$data = date("Y-m-d");$novadata = substr($data,8,2) . "/" .substr($data,5,2) . "/" . substr($data,0,4);$filename = "data.txt";$fd =fopen($filename,"w");fwrite($fd,$novadata);fclose($fd);echo "<p class=\"msg\"><font color=#000000>Data atualizada<br></p>\n";?></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tive este problema e a forma mais rápida e prática que encontrei foi abrir este arquivo com o excel, ele abre aquela tela pedindo o formato do txt/delimitador e tal, daí você informa que o delimitador eh tabulação.Então ficara cada coluna de seu txt em uma coluna do excel, vá em arquivo/salvar como texto separado por vírgulas (.csv), feito isso eh só importar com o phpmyadmin mesmo. ;) ps.: achei esta forma mais prática do que fazer um script para isso. Se já tá pronto vamos usar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo menos no mysql para windows, eh soh você utilizar uma ferramenta que vem junto com com o mysql, o mysqlimport.exeSintaxe:mysqlimport <options> <database> <tabela_arquivo.txt>ex.:mysqlimport --local teste tb_cliente.txtCada campo deve estar separado no arquivo pelo tabMaiores informaçoes digite mysqlimport no seu diretorio bin do mysql[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valews Pessoal!! Eu vou testar da última resposta pra primeira. :D Me pareceu mais simples assim. Mas agradeço a todos e inicio neste fórum já tendo boas impressões com relação à solidariedade de todos para os menos entendidos dos assuntos(como eu, por exemplo). :-) Obrigado. Atenciosamente,Flávio Alencar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alow pessoal, consegui fazer a transferência com sucesso. Mas tem outro probleminha. Tenho duas tabelas: associados e aniversariantesem associados tem os campos:id, nome, cpfEm aniversariantes tem os campos:id, nome, dia, mesO campo nome, nas duas tabelas, têm os mesmos registros, ou seja, são iguais.Então vem a pergunta:Como fazer para transferir os campos dia e mes para a tabela associados, associando os dados aos nomes?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sendo q estão em arquivos diferentes fica meio complicado, pois pode existir nomes de pessoas que existem em 1 arquivo e não existe em outro!! A não ser que você me de certeza que tudo ta igual, só que tem os campos dia e mes.Dae você faz como o Walace explicou no arquivo nome e cnpj a mesma coisa com o arquivo com nome, dia e mes. Dae você ordena por nome os dois arquivos e copia as colunas dia e mes pro arquivo que tem nome e cnpj. Dae você faz a transferencia da mesma forma!!!

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.