Ir ao conteúdo
  • Cadastre-se

PHP Inserir múltiplos arquivos excel no banco de dados com PHP


Posts recomendados

Olá pessoal! Vim aqui pedir a ajuda de vocês em projeto que estou criando.

Tenho um formulário que recebe os arquivos para importar para o mysql... 

<form name="upload" enctype="multipart/form-data" method="POST" action="processa.php" >
   <div id="tbl1">
      <h3>Importar Excel Dados 1 </h3>
      <label>Arquivo: </label>
      <input type="file" name="arquivo[]" id="file" accept=".xls,.xlsx"><br><br>
   </div>

   <div id="tbl2">
      <h3>Importar Excel Dados 2</h3>
      <label>Arquivo: </label>
      <input type="file" name="arquivo[]" id="file" accept=".xls,.xlsx"><br><br>
   </div>

   <div>
      <h3>Selecione o participante:</h3>
         <?php
            $sQuery  = mysqli_query($sConn, "
                    SELECT ID, NOME
                     FROM PARTICIPANTE
                     ORDER BY NOME
                    ");
            ?>
       <label for="">Escolha: </label>
          <select id="func_nome_incluir" name="func_nome_incluir">
            <option >Selecione...</option>
              <?php while ($aUser   = mysqli_fetch_array($sQuery)) { ?>
            <option value="<?php echo $aUser['ID'] ?>"><?php echo $aUser['NOME'] ?></option>
              <?php } ?>
          </select>
   </div>
    <div>
      <br><br>
      <button type="submit" class="btn btn-success btn-lg">Enviar</button>
      <input type="reset" class="btn btn-danger btn-lg" value="Limpar">
     </div>
</form>

Esse formulário envia para o arquivo processa.php, no qual, o que era pra ocorrer,  colocar os arquivos recebidos no diretório específico, fazer a leitura dos dois arquivos recebidos e inserir cada um na sua base, juntamente com o id do participante. 

<?php
require_once 'PHPExcel/Classes/PHPExcel.php';
$diretorio  = "uploads/";

$arquivo    = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;

for ($i = 0; $i < count($arquivo['name']); $i++) {
  // Move o arquivo para o caminho definido
  $destino = $diretorio."/".$arquivo['name'][$i];
  move_uploaded_file($arquivo['tmp_name'][$i], $destino);
  
  $inputFileType = PHPExcel_IOFactory::identify($arquivo);
  $objReader     = PHPExcel_IOFactory::createReader($inputFileType);
  $objPHPExcel   = $objReader->load($arquivo);
  $sheet         = $objPHPExcel->getSheet(0);
  $highestRow    = $sheet->getHighestRow();
  $highestColumn = $sheet->getHighestColumn();

  //INSERÇÃO NA TABELA DADOS1
  //As letras A, B e C no getCell é referente aos campos da planilha no excel que quero pegar
  for ($row = 2; $row <= $highestRow; $row++) {
    $x_data = $sheet->getCell("A".$row)->getValue();
    $x_hora = $sheet->getCell("B".$row)->getValue();
    $x_id_participante = $sheet->getCell("C".$row)->getValue();

    $tbl1 = "INSERT INTO dados1(data, hora, id_participante) value ";
    $tbl1 .= " (\"$x_data\",\"$x_hora\",\"$x_id_participante\",NOW())";
    $con->query($tbl1);
  }
  //unlink($archivo);
  //INSERÇÃO NA TABELA DADOS2
  //As letras N e Q no getCell é referente aos campos da planilha no excel que quero pegar
  for ($row = 2; $row <= $highestRow; $row++) {
    $x_data = $sheet->getCell("N" . $row)->getValue();
    $x_hora = $sheet->getCell("Q" . $row)->getValue();
    $x_id_participante = $sheet->getCell("V" . $row)->getValue();

    $tbl2 = "INSERT INTO dados2(data, hora_apontada, id_participante) value ";
    $tbl2 .= " (\"$x_data\",\"$x_hora\",\"$x_id_participante\", NOW())";
    $con->query($sql);
  }

  // Mensagem de sucesso
  echo "O arquivo <b>" . $arquivo . "</b> foi enviado com sucesso. <br />";
}
?>

E o que acontece é, os arquivos não são movidos para pasta e é dito que foi gravado no banco, porém não acontece isso! E quando dou f12 na tela, e vejo onde está o erro, diz que os arquivos não puderam serem lidos, e só ler somente um, não ler os dois! Como se estivesse passando apenas um arquivo e não os dois... 

Se alguém puder me ajudar a resolver isso, ficarei muito grata!!  

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!