Ir para conteúdo

POWERED BY:

Arquivado

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

revsouza

Gravar Array Mysql - Mesma Tabela

Recommended Posts

Pessoal, tenho o seguinte código que faz upload de um array de até 5 arquivos:

for ($i = 0; $i < $numeroCampos; $i++) {


	// Informações do arquivo enviado
	$nomeArquivo = $_FILES["arquivo"]["name"][$i];
	$tamanhoArquivo = $_FILES["arquivo"]["size"][$i];
	$nomeTemporario = $_FILES["arquivo"]["tmp_name"][$i];
	
	// Verifica se o arquivo foi colocado no campo
	if (!empty($nomeArquivo)) {
	
		$erro = false;
	
		// Verifica se o tamanho do arquivo é maior que o permitido
		if ($tamanhoArquivo > $tamanhoMaximo) {
			$erro = "O arquivo " . $nomeArquivo . " não deve ultrapassar " . $tamanhoMaximo. " bytes";
		} 
		// Verifica se a extensão está entre as aceitas
		elseif (!in_array(strrchr($nomeArquivo, "."), $extensoes)) {
			$erro = "A extensão do arquivo <b>" . $nomeArquivo . "</b> não é válida";
		} 
		// Verifica se o arquivo existe e se é para substituir
		elseif (file_exists($caminho . $nomeArquivo) and !$substituir) {
			$erro = "O arquivo <b>" . $nomeArquivo . "</b> já existe";
		}
	
		// Se não houver erro
		if (!$erro) {
			// Move o arquivo para o caminho definido
			move_uploaded_file($nomeTemporario, ($caminho . $nomeArquivo));
			// Mensagem de sucesso
			echo "O arquivo <b>".$nomeArquivo."</b> foi enviado com sucesso. <br />";
		
	
		

		} 
		
		
		// Se houver erro
		else {
			// Mensagem de erro
			echo $erro . "<br />";
		}
	}
}

O problema é que se eu tentar pegar o nome que vem na variavel $nomeArquivo, eu até consigo, mas o for roda 5 vezes e no fim grava apenas um nome da minha base. Eu tentei fazer diferente e jogar isso dentro do for:

$arquivoFinal[] = $nomeArquivo;
print_r($arquivoFinal);
	

Porém ele me da cada nome após cada execução do for, o que não consigo gravar. Estou precisanso pegar esses nomes fora do for, porém não consigo, alguem consegue ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

Vejo 2 opções...
A primeira é dar o insert direto neste trecho:
// Se não houver erro
	if (!$erro) {
		//INSERT...

ou armazenar os nomes na interação e salvar fora do for() :

//Dentro do laço:
	$arquivoFinal = array();
	$arquivoFinal[] = $nomeArquivo;
	print_r($arquivoFinal);
//Fora do laço:
	foreach($arquivoFinal as $nm){
		echo $nm . '<br />';
	}

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.