Jump to content


Photo

Importação De Arquivo .txt


  • Faça o login para participar
2 replies to this topic

#1 mizani

mizani

    12 Horas

  • Usuários
  • 124 posts
  • Sexo:Não informado

Posted 07/10/2008, 22:29

Ae galera, boa noite!

Estou com um problema num projeto que estou desenvolvendo e estou meio perdido com a situação, seguinte:

- Tenho um arquivo .txt com um determinado LAYOUT.
EX: NOMESOBRENOMEIDADECIDADE
- Eu usei um comando para listar as informações do .txt e funcionou na listagem, mas qdo peço para inserir no BD, com o seguinte código, ele apenas INSERE A PRIMEIRA LINHA, ou seja O PRIMEIRO DADO.

$CON= mysql_connect($host, $user, $pass);mysql_select_db($banco, $CON);$arquivo = 'import.txt'; $abrir = fopen($arquivo,'r'); $i = 0;	while(!feof($abrir)) {	$linha[] = fgets($abrir); 			$VidPacNome = substr($linha[$i], 0, 40);		$VidPacNumero = substr($linha[$i], 40, 20);		$VidPacEmpresa = substr($linha[$i], 60, 40);		$VidPacEnd = substr($linha[$i], 100, 40);		$VidPacEndBairro = substr($linha[$i], 140, 20);		$VidPacEndCidade = substr($linha[$i], 160, 20);		$VidPacEndUF = substr($linha[$i], 180, 2);		$VidPacEndCEP = substr($linha[$i], 182, 8);		$VidPacCPF = substr($linha[$i], 190, 11);		$VidPacRG = substr($linha[$i], 201, 14);		$VidPacParentesco = substr($linha[$i], 215, 15);		$VidPacNasc = substr($linha[$i], 230, 8);		$VidPacSexo = substr($linha[$i], 238, 1);		$VidPacPlano = substr($linha[$i], 239, 21);		$VidPacTitular = substr($linha[$i], 260, 40);		$VidPacEndNumero = substr($linha[$i], 300, 6);		$VidPacEndComp = substr($linha[$i], 306, 15);		$VidPacTelDDD = substr($linha[$i], 321, 2);		$VidPacTel = substr($linha[$i], 323, 8);		$VidPacCelDDD = substr($linha[$i], 331, 2);		$VidPacCelular = substr($linha[$i], 333, 8);				$VidPacPlanoMP = substr($linha[$i], 341, 1);		$VidPacPlanoAPH = substr($linha[$i], 342, 1);		$VidPacPlanoOMT = substr($linha[$i], 343, 1);		$VidPacPlanoCMD = substr($linha[$i], 344, 1);		$VidPacPlanoCL = substr($linha[$i], 345, 1);		$VidPacStatus = substr($linha[$i], 346, 1);				 mysql_query("INSERT INTO dbvidas  (		    VidPacNome,			VidPacNumero,			VidPacEmpresa,			VidPacEnd,			VidPacEndNumero,			VidPacEndComp,			VidPacEndBairro,			VidPacEndCidade,			VidPacEndUF,			VidPacEndCEP,			VidPacCPF,			VidPacRG,			VidPacParentesco,			VidPacNasc,			VidPacSexo,			VidPacPlano,			VidPacTitular,			VidPacTelDDD,			VidPacTel,			VidPacCelDDD,			VidPacCelular,			VidPacPlanoMP,			VidPacPlanoAPH,			VidPacPlanoOMT,			VidPacPlanoCMD,			VidPacPlanoCL,			VidPacStatus		  ) VALUES  (			'$VidPacNome',			'$VidPacNumero',			'$VidPacEmpresa',			'$VidPacEnd',			'$VidPacEndNumero',			'$VidPacEndComp',			'$VidPacEndBairro',			'$VidPacEndCidade',			'$VidPacEndUF',			'$VidPacEndCEP',			'$VidPacCPF',			'$VidPacRG',			'$VidPacParentesco',			'$VidPacNasc',			'$VidPacSexo',			'$VidPacPlano',			'$VidPacTitular',			'$VidPacTelDDD',			'$VidPacTel',			'$VidPacCelDDD',			'$VidPacCelular',			'$VidPacPlanoMP',			'$VidPacPlanoAPH',			'$VidPacPlanoOMT',			'$VidPacPlanoCMD',			'$VidPacPlanoCL',			'$VidPacStatus');", $CON);		  	$i = $i + 1;	}

Ajudae quem puder,

Obrigado,
Eduardo Mizani

Já ta resolvido :)
'-. http://www.mizani.com.br .-'
WebDesigner
'- http://www.alweb.com.br .-'
WebHost

#2 donizeth

donizeth

    Normal

  • Usuários
  • 77 posts
  • Sexo:Masculino

Posted 08/10/2008, 00:19

não sei se estou certo, mais uma vez fiz um sisteminha e tive que fazer assim, mais tenta inserir as variaveis assim

"INSERT INTO tabela
('campo1', 'campo2') VALUES ('$valor[0]', '$valor[1]')";

se vc inserir no DB um array so vai inserir o primeiro valor msm... faz desse jeito e posta pra gente ve.

#3 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 08/10/2008, 00:32

A query precisaria estar do lado de fora do WHILE, senão também ele iria inserir o valor de cada linha em um novo registro deste modo seu.

Hmm naum vi outra solução anaum ser essa usando swith:
ex.:
switch($i){
 case 1 : $VidPacNome = substr($linha[$i], 0, 40); break;
 case 2 : $VidPacNumero = substr($linha[$i], 40, 20); break;
}
e assim sucessivamente até colocar todas variáveis no switch(). E depois é só usar a query atual fora do LOOP do while que daria certo.
O caso de ter que usar switch como solução é que nas variáveis, cada SUBSTR() de cada uma é diferente, se foste somente pegar um padrão ou a linha toda aí já teria uma solução bem mais simples ^.^

Edição feita por: lwirkk, 08/10/2008, 00:33.

Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq