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 :
No ficheiro arquivo.txt:
Código :
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...
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");
}
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;
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...