MBarros 0 Denunciar post Postado Dezembro 17, 2009 Pessoal! Criei um sistema que envia um grupo de 4 arquivos para uma pasta. Cada grupo com 4 imagens possui seus dados no BD, só que o que acontece é que no BD, para cada imagem, ele cria uma nova entrada no BD, sendo que eu quero que o nome das imagens apareçam juntas em um campo chamado imagens BD e não cada imagem numa entrada diferente, acho que tem algo a ver com os 4 <input type="file" name="imagens[]" /> mas não sei ao certo? Teria eu que remover os colchetes e nomea-los 1 2 3 4? Caso seja, como mostra-las juntos no BD? index.php <form method="post" action="enviar.php" enctype="multipart/form-data"> <fieldset> <label for="imagens">Imagens: </label> <input type="file" name="imagens[]" /> <input type="file" name="imagens[]" /> <input type="file" name="imagens[]" /> <input type="file" name="imagens[]" /> <label for="titulo">Título: </label> <input type="text" name="titulo" /> <label for="resumo">Resumo: </label> <input type="text" name="resumo" /> <label for="producao">Produção: </label> <textarea name="producao" cols="50" rows="10"></textarea> <label for="detalhes">Detalhes: </label> <textarea name="detalhes" cols="50" rows="10"></textarea> <input type="submit" name="enviar" value="Enviar" /> </fieldset> </form> enviar.php <?php $numeroCampos = 4; $caminho = "../uploads/"; $substituir = false; for ($i = 0; $i < $numeroCampos; $i++) { $nomeArquivo = $_FILES["imagens"]["name"][$i]; $nomeTemporario = $_FILES["imagens"]["tmp_name"][$i]; if (!empty($nomeArquivo)) { $erro = false; if (file_exists($caminho . $nomeArquivo) AND !$substituir) { $erro = "O arquivo <strong>".$nomeArquivo."</strong> já existe"; } if (!$erro) { $nomeArquivo = ($_FILES['imagens']['name'][$i]); $titulo = $_POST['titulo']; $resumo = $_POST['resumo']; $producao = $_POST['producao']; $detalhes = $_POST['detalhes']; mysql_connect("localhost","root","") or die ("Não foi possível conectar ao Servidor."); mysql_select_db("lab") or die ("Não foi possível selecionar a base de dados"); mysql_query("INSERT INTO `envio` (imagens, titulo, resumo, producao, detalhes) VALUES('$nomeArquivo', '$titulo', '$resumo', '$producao', '$detalhes')"); move_uploaded_file($nomeTemporario, ($caminho . $nomeArquivo)); echo "Arquivos enviados!"; } } else { echo "Problema"; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Dezembro 17, 2009 ELe da uma nova entrada sempre, pq o insert está dentro do FOR, tira ele de dentro. Compartilhar este post Link para o post Compartilhar em outros sites
MBarros 0 Denunciar post Postado Dezembro 17, 2009 @Dee, @Alaerte Gabriel Vocês estavam corretíssimos, mas agora as imagens vão para a pasta, os dados vão para o BD mas, no campo imagens, ao invés de aparecer o nome das imagens enviadas, aparece escrito Array. Como solucionar a questão? <?php $numeroCampos = 4; $caminho = "../uploads/"; $substituir = false; $nomeArquivo = ($_FILES['imagens']['name']); $titulo = $_POST['titulo']; $resumo = $_POST['resumo']; $producao = $_POST['producao']; $detalhes = $_POST['detalhes']; mysql_connect("localhost","root","") or die ("Não foi possível conectar ao Servidor."); mysql_select_db("lab") or die ("Não foi possível selecionar a base de dados"); mysql_query("INSERT INTO `trabalhos` (imagens, titulo, resumo, producao, detalhes) VALUES('$nomeArquivo', '$titulo', '$resumo', '$producao', '$detalhes')"); for ($i = 0; $i < $numeroCampos; $i++) { $nomeArquivo = $_FILES["imagens"]["name"][$i]; $nomeTemporario = $_FILES["imagens"]["tmp_name"][$i]; if (!empty($nomeArquivo)) { $erro = false; if (file_exists($caminho . $nomeArquivo) AND !$substituir) { $erro = "O arquivo <strong>".$nomeArquivo."</strong> já existe"; } if (!$erro) { move_uploaded_file($nomeTemporario, ($caminho . $nomeArquivo)); } echo "Arquivos enviados!"; } else { echo "Problema"; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Dezembro 17, 2009 owieowieowi Mano, você tirou o INSERT do FOR, mas coloca ele DEPOIS, nao ANTES do FOR. você colocou ANTES. Dae ele nao coloca nome, coloca 'array'. ASsim ó: for ($i = 0; $i < $numeroCampos; $i++) { $nomeArquivo = $_FILES["imagens"]["name"][$i]; $nomeTemporario = $_FILES["imagens"]["tmp_name"][$i]; if (!empty($nomeArquivo)) { $erro = false; if (file_exists($caminho . $nomeArquivo) AND !$substituir) { $erro = "O arquivo <strong>".$nomeArquivo."</strong> já existe"; } if (!$erro) { move_uploaded_file($nomeTemporario, ($caminho . $nomeArquivo)); } echo "Arquivos enviados!"; } else { echo "Problema"; } } mysql_query("INSERT INTO `trabalhos` (imagens, titulo, resumo, producao, detalhes) VALUES('$nomeArquivo', '$titulo', '$resumo', '$producao', '$detalhes')"); Compartilhar este post Link para o post Compartilhar em outros sites
MBarros 0 Denunciar post Postado Dezembro 17, 2009 ahahaha Falha geral minha! sorry http://forum.imasters.com.br/public/style_emoticons/default/natal_laugh.gif Mas, ele pega o nome de 1 imagem apenas, existe meio do nome das 4 imagens inseridas aparecerem no BD? :$ Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Dezembro 17, 2009 Nao entendi sua pergunta cara, reformule ela melhor Compartilhar este post Link para o post Compartilhar em outros sites
MBarros 0 Denunciar post Postado Dezembro 17, 2009 Tenho 4 campos para envio de imagens <input type="file" name="imagens[]" /> <input type="file" name="imagens[]" /> <input type="file" name="imagens[]" /> <input type="file" name="imagens[]" /> As imagens estão indo para a pasta, mas o nome de apenas 1 delas aparece registrado no BD. Como fazer com que o nome das outras 3 imagens também seja registrado no BD? Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Dezembro 17, 2009 Acho que você tem que separar e juntar =), tpw assim: $imagens = implode('-', $nomeArquivo['name']);Dae você coloca a variavel $imagens no insert Compartilhar este post Link para o post Compartilhar em outros sites
MBarros 0 Denunciar post Postado Dezembro 17, 2009 Acho que você tem que separar e juntar =), tpw assim: $imagens = implode('-', $nomeArquivo['name']);Dae você coloca a variavel $imagens no insert @Dee Muito obrigado mesmo! Funcionou! Agradeço e fico à disposição! Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Dezembro 17, 2009 Vlw mano! =D! Compartilhar este post Link para o post Compartilhar em outros sites