Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafaelzis

Salvar em mysql (multiplo)

Recommended Posts

Estou tentando criar uma function que cria um "album" de imagens.

 

O input 1 cadastra a capa na tabela capa e o input 2 aceita multiplos arquivos.

 

Até então a function funciona perfeitamente porem na hora de registrar o arquivo no banco de dados o mesmo só registra 1 arquivo e move todos para a pasta destino.

 

Já fiz

var_dump($inserir);

para ver o resultado e notei que as querys sao criadas normalmente e simultaneamente porem só uma delas é registrada no banco.

 

 

O HTML:

<?php //Chama a função inserir caso tenha algum dado em POST (includes/conexao)
                      if (isset($_POST['salvar'])) {
                        criar_album('albumImagens', 'capa', $_POST);
                      }  
                      ?>
                      
                      <form class="form-horizontal" method="POST" action="" enctype="multipart/form-data" runat="server" />
                      <fieldset>

                        <legend>Nova imagem</legend>
                        <div class="form-group">
                          <label class="col-md-3 control-label" for="nome">Nome</label>  
                          <div class="col-md-6">
                            <input name="nome" type="text" placeholder class="form-control input-md" required />
                          </div>
                        </div>

                        <!-- Text input --> 
                        <div class="form-group">   
                          <div id="thumbnail">
                          </div>
                          <label class="col-md-3 control-label" for="capa">Capa:</label>  
                          <div class="col-md-4">
                            <input type="file" name="capa" id="capa" class="form-control" required>
                          </div>
                        </div>

                        <!-- Text input-->
                        <div class="form-group">
                          <label class="col-md-3 control-label" for="imagem">Album:</label>  
                          <div class="col-md-4">
                            <input type="file" name="imagem[]" id="imagem" class="form-control" required multiple />
                          </div>
                        </div>

                        <!-- Button -->
                        <div class="form-group">
                          <label class="col-md-3 control-label" for="salvar"></label>
                          <div class="col-md-5">
                            <button type="submit" id="salvar" name="salvar" class="btn btn-primary btn-lg">Salvar</button>
                          </div>
                        </div>

                      </fieldset>
                    </form>

A function:

function criar_album($album, $destaque, $dados){
    $con = conectar(); // Cria a conexao dentro da function
    $caminho = 'uploads/'; // caminho para a imagem
    $nome = $_POST['nome']; // Nome do album
    $qtd = count($_FILES["imagem"]["name"]); // Quantidade de arquivos selecionados (album)

    if ($qtd > 0){
        $nomeArquivoCapa = $_FILES["capa"]["name"]; // Nome do arquivo
        $nomeTemporarioCapa = $_FILES["capa"]["tmp_name"]; // Nome temporário do arquivo
        $tamanhoArquivoCapa = $_FILES["capa"]["size"]; // Tamanho do arquivo


        if(empty($nomeArquivoCapa)){ // se não existir arquivo exibi o erro.
            echo '<div class="alert alert-danger" role="alert">Erro, capa nao inserida!</div>';
            return;
        }

        $arquivoArrayCapa = explode(".", $nomeArquivoCapa); // Separa o nome do arquivo da extensão
        $extensaoCapa = end($arquivoArrayCapa); // Pega a extensão do arquivo.
        $arquivoCapa = $caminho.md5(time().rand(3212, 15452)).'.'.$extensaoCapa; // Junta o nome do arquivo criptografado (evitar mesmo nome) e junta com a extensão

        if (move_uploaded_file($nomeTemporarioCapa, $arquivoCapa)) { // Move a imagem da capa para a pasta e inseri no banco de dados.
            $inserir = $con->prepare("INSERT INTO $destaque(nome, imagem) VALUES('$nome', '$arquivoCapa')");
            $inseri = $inserir->execute(); // Execute a inserção
            $last = $con->lastInsertId(); // Pega o ID que foi inserido para fazer relação na tabela albumImagens
        } else{
            echo '<div class="alert alert-danger" role="alert">Erro, tente novamente mais tarde!</div>';
        }


  
for ($i=0; $i < $qtd; $i++) {  // Inicia loop para inserir mais de 1 imagem.

    $nomeArquivo = $_FILES["imagem"]["name"][$i];
    $nomeTemporario = $_FILES["imagem"]["tmp_name"][$i];
    $tamanhoArquivo = $_FILES["imagem"]["size"][$i];

    if (!empty($nomeArquivo)) { // Verifica se existe arquivo
        $arquivoArray = explode(".", $nomeArquivo); // Separa o nome do arquivo da extensão
        $extensao = end($arquivoArray); // Pega a extensão do arquivo.
        $arquivo = $caminho.md5(time().rand(3212, 15452)).'.'.$extensao; // Junta o nome do arquivo criptografado (evitar mesmo nome) e junta com a extensão

        if (move_uploaded_file($nomeTemporario, $arquivo)) { // Move o arquivo para a pasta e cadastra no banco de dados.
            $inserir = $con->prepare("INSERT INTO $album(idCapa, imagem) VALUES($last, '$arquivo')");
	   // O erro acontece aqui!!!!
            $inserir->execute();
        }else{
            echo '<div class="alert alert-danger" role="alert">Erro, tente novamente mais tarde!</div>';
        }
    } 

} 
echo '<div class="alert alert-success" role="alert">Salvo com sucesso!</div>';
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.