+ Responder ao Tópico



  1. #1

    Padrão Texto para mysql

    Saudações livres a todos :-D

    Estou com uma duvida por naum sacar nada de mysql.
    O problema eh que estava com uma base de dados ACCESS e exportei para arquivo de texto com delimitação por " e separação por espaço no seguinte fomato

    "CPF" "NOME" "ENDEREÇO" "BAIRRO" "CIDADE" "UF" "CPEP" "TELEFONE"

    Todos os meu dados estão formatados assim, no arquivo contem 344 registros e preciso fazer um INSERT da seguinte forma:

    INSERT INTO `pessoa_fisica` ( `id_pessoa_fisica` , `nome` , `login` , `senha` , `email` , `cpf` , `rg` , `rg_emissor` , `dt_nascimento` , `sexo` , `estado_civil` , `nacionalidade` , `res_rua` , `res_bairro` , `res_cidade` , `res_cep` , `res_estado` , `res_tempo` , `res_tipo` , `res_tel1` , `res_tel2` , `ocupacao` , `renda_mensal` , `renda_outras` , `end_correspondencia` , `terceiro` , `obs` , `ativo` , `permitir_login` )
    VALUES (
    NULL , 'NOME', '', '', '[email protected]', 'CPF', '000000', 'ssppb', '0000-00-00', '', '', '', 'ENDEREÇO', 'BAIRRO', 'CIDADE', 'CEP', 'UF', '', '', 'TELEFONE', '', '', '', '', '', '', '', '', ''
    );


    Gostaria de alguma forma, axo eu que seja por manipulação de arquivos usando expresões regulares, sera que alguem poderia me ajudar.

  2. #2
    estevan
    Visitante

    Padrão Re: Texto para mysql

    Acredito e isso ira ajudar

    // abrir o arquivo txt
    $fp = fopen('meuarquivoondeesta.txt', 'r');
    while(!feof($fp))
    {
    $line = trim(fgets($fp));
    // aqui ira usar e funcao explode para os campos use | ou , na expostacao pq seus valore terao espaco pelo q vi pq tem endereco ...
    $line = explode('|', $line);
    // aqui vo ira inserir na tabela sera facil pois ja tem os valore definidos ...
    mysql_query("INSERT INTO tabela VALUES('".$line[0]."', '".$line[1]."', '".$line[2]."', '".$line[3]."', '".$line[4]."')");
    $count++;
    }
    if(!mysql_error($link))
    echo 'inserido ( '.$count.' ) registros.';
    mysql_close($link);

    claro q vc tera q modificar os campos no query mais e um exemplo q com certeza ajudara

  3. #3
    belvio
    Visitante

    Padrão Re: Texto para mysql

    Caro amigo faça o seguinte não use a delimitação utilizando " e use a separação utilizando o TAB, seu arquivo ficarar mais ou menos assim

    CP FNOME ENDEREÇO BAIRRO CIDADE UF CPEP TELEFONE

    nos campos que não tiver informação coloque um \N.

    e use o seguinte comando para carregar as informações na tabela

    LOAD DATA LOCAL INFILE "[nome do arquivo]" INTO TABLE [nome da tabela];

    Dica: a quantidade de colunas no arquivo deve ser identica a quantidade de campos dentro da tabela.

    exemplo de um arquivo, na separação foi utilizado TAB entre as colunas:

    Fluffy Harold cat f 1993-02-04 \n
    Claws Gwen cat m 1994-03-17 \n
    Buffy Harold dog f 1989-05-13 \n
    Fang Benny dog m 1990-08-27 \n
    Bowser Diane dog m 1979-08-31 1995-07-29
    Chirpy Gwen bird f 1998-09-11 \n
    Whistler Gwen bird \n 1997-12-09 \n
    Slim Benny snake m 1996-04-29 \n

    formato da tabela que este arquivo vai preencher

    Field Type Null Key
    nome varchar(20) YES
    owner varchar(20) YES
    species varchar(20) YES
    sex char(1) YES
    birth date YES
    death date YES

    comando que vai preencher esta tabela com o arquivo acima

    LOAD DATA LOCAL INFILE "pet.txt" INTO TABLE pet;


    espero ter ajudado.