I'm creating a multiple image upload system. The "move_uploaded_file" function works fine. The problem is that I included a $ grav insert for the DB, and as it can be seen in the code, it would only be sent if the IF conditions of the images were respected. Only when the 'for' loop goes into execution, it duplicates this insert the number of times equal to the indexed images. If they are 3, I will repeat the insertion 3 times, and so on, and I only wanted 1 single insert. I saw on the English Stack that there is the possibility of using ON DUPLICATE KEY UPDATE to avoid this duplication. But how would I do that?
//INFO IMAGEM
$file = $_FILES['anexo'];
$numFile = count(array_filter($file['name']));
//PASTA
$folder = 'docs';
//REQUISITOS
$permite = array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/pdf');
$maxSize = 1024 * 1024 * 5;
//MENSAGENS
$msg = array();
$errorMsg = array(
1 => 'O arquivo no upload é maior do que o limite definido em upload_max_filesize no php.ini.',
2 => 'O arquivo ultrapassa o limite de tamanho em MAX_FILE_SIZE que foi especificado no formulário HTML',
3 => 'o upload do arquivo foi feito parcialmente',
4 => 'Não foi feito o upload do arquivo'
);
if($numFile <= 0)
echo 'Selecione uma Imagem!';
else{
for($i = 0; $i < $numFile; $i++){
$name = $file['name'][$i];
$type = $file['type'][$i];
$size = $file['size'][$i];
$error = $file['error'][$i];
$tmp = $file['tmp_name'][$i];
$extensao = @end(explode('.', $name));
$novoNome = rand().".$extensao";
if($error != 0) { $msg[] = "<b>$name :</b> ".$errorMsg[$error]; }
else if(!in_array($type, $permite)) { $msg[] = "<b>$name :</b> Erro imagem não suportada!"; }
else if($size > $maxSize) { $msg[] = "<b>$name :</b> Erro imagem ultrapassa o limite de 5MB"; }
else{
if(move_uploaded_file($tmp, $folder.'/'.$novoNome)) {
//abaixo a inserção que está sendo duplicada
$grav = "INSERT INTO propostaveic (tipseguro, marca, modelo, anofabric, modeloano, cambauto, veicblind, veicualien, veicudefic, kitgas, taxi, naresidenc, notrab, nocolegio, ceppernoite, veicupresta, veic85pc, ponthabilit, cidade, data, cnh, usuario)
VALUES ('$seguro1', '$seguro2', '$seguro3', '$seguro4', '$seguro5', '$seguro6', '$seguro7', '$seguro8', '$seguro9', '$seguro10', '$seguro11', '$seguro12', '$seguro13', '$seguro14', '$seguro15', '$seguro16', '$seguro17', '$seguro18', '$seguro19', '$seguro20', '$seguro21', '$usuario')";
$exe_grav = mysqli_query($bd, $grav);
$msg[] = "<b>$name :</b> Upload Realizado com Sucesso!";
}
else {
$msg[] = "<b>$name :</b> Desculpe! Ocorreu um erro...";}
}
foreach($msg as $pop)
echo $pop.'<br>';
}
}