Jump to content


Photo

Salvar Dados Na Tabela Onde Tiver Campos Vazios...


  • Faça o login para participar
4 replies to this topic

#1 Diego Viana

Diego Viana

    Normal

  • Usuários
  • 84 posts
  • Sexo:Masculino
  • Localidade:Ourinhos-SP

Posted 20/02/2008, 19:50

E aí pessoal!
Então gente, eu tenho uma tabela onde estão sendo armazenados os nomes de uma imagem que foi baixada pelo usuário, só que ele vai ter a opção de editar essas imagens, então eu tenho quatro campos:

- foto1
- foto2
- foto3
- foto4

Só que digamos que ele só tenha salvo duas fotos, a foto um vai para o campo foto1 e a foto dois vai para o campo foto2, deixando o foto3 e foto4 vazios, depois se ele quiser adicionar mais, salva automaticamente nos campos que tiverem vazios.

Será que tem algum comando que faça isso?

Obrigado.....

#2 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 20/02/2008, 19:57

Esses campos:
- foto1
- foto2
- foto3
- foto4
são da tabela?

É simples, se for o que entendi, é só verificar os campos que estão vazios, fazendo select, depois fazer um algorítmo que iria ver qual está vazio e mandar informação nele.

Claro que isso seria meio POG (programação orientada a gambiarra).
Estamos aí para mais sugestões.

Até mais ^_^

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#3 Diego Viana

Diego Viana

    Normal

  • Usuários
  • 84 posts
  • Sexo:Masculino
  • Localidade:Ourinhos-SP

Posted 20/02/2008, 20:24

foto1, foto2, foto3 e foto4 são os meus campos na tabela...

Dudu, então kra, eu tentei fazer assim mais está meio confuso, pq eu recebo o nome dessas fotos baixadas em um array

assim:

$foto1 = $array[0];
$foto2 = $array[1];
$foto3 = $array[2];
$foto4 = $array[3];

Só que, se eu tivesse já no banco duas foto salvas (exemplo tá), ele teria que pegar o array que não estiver vazio e salvar nos campos da tabela que estão vazios e na ordem. se o campo foto3 for vazio ele vai pegar o primeiro array que não for vazio e salva no campo3, e passa pro próximo campo, fazendo a mesma coisa.

Não sei se deu pra entender...

Edição feita por: Diego Viana, 20/02/2008, 20:25.


#4 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 20/02/2008, 20:31

Vou tentar pensar em uma solução para você...
Até agora não veio nada na cabeça...
Até mais.

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#5 Diego Viana

Diego Viana

    Normal

  • Usuários
  • 84 posts
  • Sexo:Masculino
  • Localidade:Ourinhos-SP

Posted 23/02/2008, 11:04

Pessoal, eu consegui fazer, mais está dando um probleminha, olha só, o upload das fotos está sendo feito, as fotos estão sendo enviadas para as pastas imagens e thumbs, porém ele só salva na tabela o nome de uma única imagem, sendo que deveria salvar os nomes de todas, nos campos que estão vazios

//recebe o array com o nome das fotos
	$fotos	= $_GET['fotos'];	   
	
	 //recebe o id da foto relacionado ao banco
	 $id_foto  = $_GET['id_foto'];   

	
	 //separa os elementos do array 
	 $array = split(" ",$fotos); 


	//seleciono a linha na tabela referente ao id passado
	$sql = "select * from fotos where id = $id_foto";
	$rs = mysql_query($sql)or die(mysql_error());
	
	$dados = mysql_fetch_array($rs);
	

for($i = 0; $i < count($array); $i++){	  
	  
	  //verifico se o campo foto1 da tabela é vazio e se o array $i é diferente de vazio
	  if($dados['foto1'] == "" && $array[$i] != ""){
		   $up_foto1 = "UPDATE `fotos` SET `foto1` = '$array[$i]' WHERE `fotos`.`id` = $id_foto";
		   $rs_up_foto1 = mysql_query($up_foto1);
		   $array[$i] == "";
	
	  }else

	  if($dados['foto2'] == "" && $array[$i] != ""){
		   $up_foto1 = "UPDATE `fotos` SET `foto2` = '$array[$i]' WHERE `fotos`.`id` = $id_foto";
		   $rs_up_foto1 = mysql_query($up_foto1);
		   $array[$i] == "";

	  }else
	  
	  if($dados['foto3'] == "" && $array[$i] != ""){
		   $up_foto1 = "UPDATE `fotos` SET `foto3` = '$array[$i]' WHERE `fotos`.`id` = $id_foto";
		   $rs_up_foto1 = mysql_query($up_foto1);
		   $array[$i] == "";

	  }else
	  
	  if($dados['foto4'] == "" && $array[$i] != ""){
		   $up_foto1 = "UPDATE `fotos` SET `foto4` = '$array[$i]' WHERE `fotos`.`id` = $id_foto";
		   $rs_up_foto1 = mysql_query($up_foto1);
		   $array[$i] == "";
		 
	  }
	  


}


echo "&lt;script language='javascript'>
			  alert('Fotos adicionadas com sucesso!');
			  location.href='editar_fotos.php?id_foto=$id_foto';
		  </script>";

Bom Pessoal, acho que com o código fica um pouco mais fácil né? Então, este código aí, está editando as fotos, mais se eu quero baixar duas de uma vez, as imagens são baixadas e salvas nas pastas, mais apenas o nome da última imagem é salva na tabela...

Seguindo a minha lógica, que não está totalmente certa né, senão estaria funcionando...rsrs, olha só, primeiro eu verifico se o campo foto1(faço isso com todos os campos, mais vou citar só o foto1), bom, eu verifico se o campo foto1 está vazio, tudo bem, agora se eu fiz o upload de duas fotos, o array[0] e o array[1] vai estar com os nomes delas, até aí está certo, pq eu já mandei imprimir por array, e mostrou o nome de cada uma das imagens baixadas. Certo, então se o campo foto1 é vazio e o array[0] for diferente de vazio ele faz o update no campo salvando o nome da imagem e depois zerando o array[0] para que não entre no if de baixo (dos outros campos), e assim para todos os arrays.

Espero que tenham me entendido... Valeuuu...

Bom Pessoal, resolvi o problema...rsrs

Valeussssss

Edição feita por: Diego Viana, 22/02/2008, 10:21.





0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq