Ir para conteúdo

POWERED BY:

Arquivado

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

maicon_m

[Resolvido] Se array vazia

Recommended Posts

Saudações.

 

Estou criando um sistema de notícias. É adicionado um texto e até 4 fotos. E obviamente têm a parte da edição. E é nessa parte que o bicho pega.

A minha idéia é de que, se o cliente não procurou novas fotos no computador (então não tem valores nos campos file e a array fica vazia) ele não faz nada. Caso tenha procurado, ele faz o upload delas.

 

Estou utilizando o código abaixo:

 

$imagens = $_FILES['imagem']; /*Recebe os 4 campos form*/

if (!empty($imagens)) /*Se array não esta vazia ele faz o upload e muda no bd*/

{

for ($i=0; $i<sizeof($imagens); $i++)

{

$foto = $_FILES['imagem']['name'][$i];

$tmp_name = $_FILES['imagem']['tmp_name'][$i];

$matriz[] = $foto;

$pasta = "imagens/moto/";

$caminho = $pasta . $foto;

move_uploaded_file($tmp_name, $caminho);

}

mysql_query("UPDATE moto SET foto='$pasta$matriz[0]', foto01='$pasta$matriz[1]', foto02='$pasta$matriz[2]', '$pasta$matriz[3]' WHERE id='$id'");

}

 

 

Já tentei if ($array!='') e if ($array !=null) mas não consegui...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu não entendi, creio que ninguém entendeu.

 

Tu quer fazer essa verificação em qual variável ?

 

mais acho que pode fazer assim:

 

if (isset($_FILES['imagem'])) /*Se array não esta vazia ele faz o upload e muda no bd*/
{
$imagens = $_FILES['imagem']; /*Recebe os 4 campos form*/
for ($i=0; $i<sizeof($imagens); $i++)
{
$foto = $imagens['name'][$i];
$tmp_name = $imagens['tmp_name'][$i];
$matriz[] = $foto;
$pasta = "imagens/moto/";
$caminho = $pasta . $foto;
move_uploaded_file($tmp_name, $caminho);
}
mysql_query("UPDATE moto SET foto='$pasta$matriz[0]', foto01='$pasta$matriz[1]', foto02='$pasta$matriz[2]', '$pasta$matriz[3]' WHERE id='$id'");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

A minha idéia é de que, se o cliente não procurou novas fotos no computador (então não tem valores nos campos file e a array fica vazia) ele não faz nada.

e se o usuário só procurou uma, você fai fazer o update com as 4 fotos?????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Alaerte!

 

Funcionou a verificação =)

 

Na Praia, eu pretendo, não sei como, fazer a verificação pra saber se ele quer substituir, ou adicionar mais uma caso não tenha sido atingida a cota de 4 imagens.

 

Aceito sugestões.

Compartilhar este post


Link para o post
Compartilhar em outros sites

antes do update você poderia fazer assim

 

if foto1 is null or foto2 is null or foto3 is null or foto4 is null then
 aviso('Tem lugar para mais fotos')
end if

você manda a mensagem e dependendo da resposta tu efetua o update ou não

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vale lembrar q isset() verifica se a variavel existe... é diferente de testar se ela esta fazia.

 

Pra ver se ela esta fazia usa-se empty();

 

 

Flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vale lembrar q isset() verifica se a variavel existe... é diferente de testar se ela esta fazia.

 

Pra ver se ela esta fazia usa-se empty();

if (isset($_FILES['imagem']) and !empty($_FILES['imagem'])) /*Se array não esta vazia ele faz o upload e muda no bd*/
{
$imagens = $_FILES['imagem']; /*Recebe os 4 campos form*/
for ($i=0; $i<sizeof($imagens); $i++)
{
$foto = $imagens['name'][$i];
$tmp_name = $imagens['tmp_name'][$i];
$matriz[] = $foto;
$pasta = "imagens/moto/";
$caminho = $pasta . $foto;
move_uploaded_file($tmp_name, $caminho);
}
mysql_query("UPDATE moto SET foto='$pasta$matriz[0]', foto01='$pasta$matriz[1]', foto02='$pasta$matriz[2]', '$pasta$matriz[3]' WHERE id='$id'");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado pelo esclarecimento Marcelo.

utilizei a modificação que você fez Alaerte

 

Apesar de revolver o problema original, ainda não sei que verificação fazer para saber se uma array é vazia.

 

É realmente utilizando !empty(array) ?

 

Por que já tinha utilizado ele na verificação original e o script não funcionou.

 

A quem interessar ajudar, estou tentando a verificação abaixo para ver se o usuário está tentando editar alguma imagem:

 

if (isset($_FILES['imagem']) and !empty($_FILES['imagem']))
					{
						$imagens = $_FILES['imagem'];
						for ($i=0; $i<sizeof($imagens); $i++)
						{
								$foto = $_FILES['imagem']['name'][$i];
								$tmp_name = $_FILES['imagem']['tmp_name'][$i];
								$matriz[] = $foto;
								if (!empty($matriz[$i]))
								{
									echo $matriz[$i];
									$pasta = "imagens/moto/";
									$caminho = $pasta . $foto;								
									move_uploaded_file($tmp_name, $caminho);	
									mysql_query("UPDATE moto SET foto0[$i] = '$pasta$matriz[$i]' WHERE id='$id'");
								}
						}	
					}

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa-se o empty para verificar variáveis vazias, usa-se is_array(); para verificar se um elemento é array, resumindo, basta usar o empty(); seguido de isset como eu fiz, traduzindo o IF ficaria assim:

 

 

Se existir a variável $_FILES... e se ela não for vazia => Execute as operações.

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.