Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 14700

Inserção de multiplos registos de um ficheiro txt para uma tabela mysql

$
0
0
Ola pessoal.
Fiz uma função que insira todos os registos de um ficheiro .txt em 2 tabelas da base de dados.
Já consegui fazer a inserção nas tabelas, mas com alguns erros. se puser so um registo no txt, a função insere correctamente em todos os campos das tabelas, mas se meter mais que um registo, já fica mal inserido, ficando alguns registos dentro dos mesmos campos. Tenho o seguinte código:Código :
$arquivo=('registos.txt');
if(file_exists($arquivo)){
$fp=fopen($arquivo,'r');
$conteudo = fread($fp,filesize($arquivo));
$separador = ","; // O que separa os resultados no arquivos TXT ?
$array = explode($separador, $conteudo);
$conta = count($array);


for ($i=0; $i <= $conta; $i++) {
  $sql = "INSERT INTO nota_e (ref_reg, modelo, cor, tamanho, quant ,num_cli, cliente, colarinho, etiq_reg) VALUES ('" . $array[$i] . "', '" . @$array[$i + 1] . "', '" . @$array[$i + 2] . "', '" . @$array[$i + 3] . "', '" . @$array[$i + 4] . "', '" . @$array[$i + 5] . "', '" . @$array[$i + 6] . "', '" . @$array[$i + 7] . "', '" . @$array[$i + 8] . "')";
  $resultado = mysqli_query($link,$sql);
  $i = $i + 9;
  }
  for ($i=0; $i <= $conta; $i++) {
   $sql1 = "INSERT INTO nota_p (ref_num, mod_num, cor_num, tam_num, quant_num ) values('" . $array[$i] . "','" . @$array[$i + 1] . "','" . @$array[$i + 2] . "','" . @$array[$i + 3] . "','" . @$array[$i + 4] . "')";
   $resultado1 = mysqli_query($link,$sql1);
   $i = $i + 5;
  }
  if($resultado && $resultado1){
   //for ($i=0; $i < $conta; $i++) {
   //$sql1 = "INSERT INTO nota_p (ref_num, mod_num, cor_num, tam_num, quant_num ) values('" . $array[$i] . "','" . @$array[$i + 1] . "','" . @$array[$i + 2] . "','" . @$array[$i + 3] . "','" . @$array[$i + 4] . "')";
   //$resultado1 = mysqli_query($link,$sql1);
   print "Dados copiados com sucesso!";
   //$i = $i + 4;
   //}
  }else{
   print "Não foi possível copiar os dados do arquivo.";
   }
  //echo($conteudo);
}else{
echo("Não foi possivel abrir o arquivo");
}

No ficheiro arquivo.txt:
Código :
167150, SLIM R, 3, 42, 2, 1122, ELEGANTEMAGEM - UNIPESSOAL LDª, 15, 3;
166760, PARKA, 1, 48, 2, 1122, ELEGANTEMAGEM - UNIPESSOAL LDª, 13, 2;
166760, PARKA, 1, 50, 2, 1122, ELEGANTEMAGEM - UNIPESSOAL LDª, 13, 2;

Como faço para inserir todos correctamente sem que fiquem uns dentro de os mesmos campos e outros fora do campo correcto? Se puderem ajudar agradeço...

Viewing all articles
Browse latest Browse all 14700