Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá boa tarde pessoal,
Bom tenho que fazer o envio de um arquivo csv para o mysql, estou conseguindo com o script abaixo.
O problema é que eu quero que o script só grave dentro do banco de dados mysql os registros (so) que não são duplicados.
Alguém sabe como faço isso? ou antes do upload? ou depois que é feito o INSERT na tabela?.
Script:
<?php
// Pasta onde o arquivo vai ser salvo
$_ENVIO['pasta'] = 'csv/';
// Tamanho máximo do arquivo (em Bytes)
$_ENVIO['tamanho'] = 1024 * 1024 * 4; // 2Mb
// Array com as extensões permitidas
$_ENVIO['extensoes'] = array('csv');
// Array com os tipos de erros de envio do PHP
$_ENVIO['erros'][0] = 'Não houve erro';
$_ENVIO['erros'][1] = 'O arquivo no envio é maior do que o limite do PHP';
$_ENVIO['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especifiado no HTML';
$_ENVIO['erros'][3] = 'O envio do arquivo foi feito parcialmente';
$_ENVIO['erros'][4] = 'Não foi feito o envio do arquivo';
// Verifica se houve algum erro com o envio. Se sim, exibe a mensagem do erro
if ($_FILES['arquivo']['error'] != 0){
die("Não foi possível fazer o envio, erro:<br />" . $_ENVIO['erros'][$_FILES['arquivo']['error']]);
exit; // Para a execução do script
}
// Caso script chegue a esse ponto, não houve erro com o envio e o PHP pode continuar
// Faz a verificação da extensão do arquivo
$extensao = strtolower(end(explode('.', $_FILES['arquivo']['name'])));
if (array_search($extensao, $_ENVIO['extensoes']) === false) {
echo "Por favor, envie arquivo com a seguinte extensões: csv";
}
// Faz a verificação do tamanho do arquivo
else if ($_ENVIO['tamanho'] < $_FILES['arquivo']['size']){
echo "O arquivo enviado é muito grande, envie arquivos de até 4Mb.";
}
// O arquivo passou em todas as verificações, hora de tentar movê-lo para a pasta
else {
//Modifica o nome do arquivo adicionando data e colocando uma id Unica
$_FILES['arquivo']['name'];
$data=date("dmY");
$resultNome = uniqid($_FILES['name']);
$nome_final =$data."#".$resultNome.".csv";
// Depois verifica se é possível mover o arquivo para a pasta escolhida
if (move_envioed_file($_FILES['arquivo']['tmp_name'], $_ENVIO['pasta'] . $nome_final)){
//conecta ao banco de dados
include('conectabanco.php');
// nome do arquivo
$arquivo = "csv/".$nome_final;
// ponteiro para o arquivo
$fp = fopen($arquivo, "r");
//processa os dados do arquivo
$contador = 0;
while(($dados = fgetcsv($fp, 0, ";")) !== FALSE)
{
$quant_campos = count($dados);
if($contador == 0)
{
}else{
for($i = 0; $i < 1; $i++)
{
//echo "<td>".$dados[$i]."</td>";
//Armazena cada linha em uma variavel
$so = $dados[0];
$inputdate = $dados[1];
$customer = $dados[2];
$po = $dados[3];
$price = $dados[4];
$status = $dados[5];
$issue = $dados[6];
$responsible = $dados[7];
$enddate = $dados[8];
$obs = $dados[9];
$query = mysql_query("INSERT into producao(so, inputdate, customer, po, price, status, issue, responsible, enddate, obs) values('".$so."','".$inputdate."','".$customer."','".$po."','".$price."','".$status."','".$issue."','".$responsible."','".$enddate."','".$obs."')");
echo $query;
}
echo "</tr>";
}
$contador++;
}
fclose($fp);
mysql_close($con);
} else {
// Não foi possível fazer o envio, provavelmente a pasta está incorreta
echo "Não foi possível enviar o arquivo, tente novamente";
}
}
?>Carregando comentários...