iMasters Fóruns: Problema com imagem no MySQL - iMasters Fóruns

Ir para

Página 1 de 1
  • Novo tópico
  • Responder

Problema com imagem no MySQL Como manter o registro atual se uma imagem não for carregada

#1 Membro offline   João Gabriel G. Ícone

  • João Gabriel G.
  • Ícone
  • Grupo: Membros
  • Posts: 18
  • Cadastrado: 01-outubro 09
  • Sexo:Masculino
  • Localização:São Paulo / SP

Postou 03 novembro 2009 - 15:38

E aee...beleza?

To com um problemão: tenho uma tabela no MySQL que tem um campo chamado "imagem", e vai nesse campo o nome da imagem no momento em que é feito o upload da mesma em uma área administrativa. O que ocorre é que esse campo precisa ser opcional para o usuário, e o que eu quero fazer é o seguinte: se o usuário fizer o upload de uma nova imagem, será feito o update no MySQL e, se nenhuma imagem for carregada, a imagem atual é que deverá permanecer cadastrada no bd. Como eu poderia fazer isso?


Valeu aee!!


#2 Membro offline   Quelipe Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 29
  • Cadastrado: 22-outubro 09
  • Sexo:Masculino
  • Localização:Brasília

Postou 03 novembro 2009 - 15:47

Antes de você fazer o update faça uma consulta para retornar o nome da imagem atual e se caso o input da imagem vier em branco
você coloca o mesmo none (da imagem atual) no update e não faz upload de imagem, mantendo assim o mesmo registro.

Não sei se fui claro, qualquer coisa estamos aí.

At+

#3 Membro offline   João Gabriel G. Ícone

  • João Gabriel G.
  • Ícone
  • Grupo: Membros
  • Posts: 18
  • Cadastrado: 01-outubro 09
  • Sexo:Masculino
  • Localização:São Paulo / SP

Postou 03 novembro 2009 - 15:55

Então, vou explicar o que eu fiz inicialmente, mas que não deu certo. A princípio, dá uma olhada no meu código:

$arquivo = $_FILES['imagem_box'];
$imagem_box = "";
if($arquivo != NULL) {
	$imagem_box = $nome_arquivo;
} else {
	$imagem_box = $row_rsBoxes['imagem_box'];
}


Explicando:
1. Atribuo à variável $arquivo à imagem enviada no form;
2. Defino como nulo a variável $imagem_box, variável que será usada na query de atualização do MySQL;
3. Se alguma imagem for carregada, use esse valor e, caso contrário, traga o valor do campo "imagem_box" da tabela de boxes.

O que tá errado?


#4 Membro offline   Daniel Filho Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 115
  • Cadastrado: 24-agosto 09
  • Sexo:Masculino

Postou 03 novembro 2009 - 16:00

Cara, eu acho que se definir um default no campo da tabela, fica fácil.

Assim, se quando o script rodar e o UPDATE não inserir nenhum dado novo, fica o default como valor padrão.

Acho que é isso!

#5 Membro offline   João Gabriel G. Ícone

  • João Gabriel G.
  • Ícone
  • Grupo: Membros
  • Posts: 18
  • Cadastrado: 01-outubro 09
  • Sexo:Masculino
  • Localização:São Paulo / SP

Postou 04 novembro 2009 - 17:38

Tentei colocar o valor default mas não deu certo. O que eu preciso é basicamente isso: se o usuário enviar uma nova imagem, essa nova imagem é cadastrada no bd, mas, se nenhuma imagem for carregada, a imagem atual deve ser considerada.

Alguém pode dar alguma luz?

#6 Membro offline   Daniel Filho Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 115
  • Cadastrado: 24-agosto 09
  • Sexo:Masculino

Postou 04 novembro 2009 - 20:40

Se ela envia uma nova imagem? Então, no caso, este mesmo usuário já teria enviado uma imagem antes?

#7 Membro offline   João Gabriel G. Ícone

  • João Gabriel G.
  • Ícone
  • Grupo: Membros
  • Posts: 18
  • Cadastrado: 01-outubro 09
  • Sexo:Masculino
  • Localização:São Paulo / SP

Postou 05 novembro 2009 - 11:31

Vocês já viram em sites quando tem cadastro, e que quando o usuário não envia nenhuma imagem ou avatar aparece aquela imagem do tipo "sem foto"? É disso que estou precisando. Como posso fazer isso?

#8 Membro offline   Daniel Filho Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 115
  • Cadastrado: 24-agosto 09
  • Sexo:Masculino

Postou 05 novembro 2009 - 11:43

Bom cara, eu sempre consegui fazer isso usando DEFAULT na hora de criar a tabela no MySQL.

CREATE TABLE usuarios (
id_usuario int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
login_usuario varchar(20) NOT NULL,
senha_usuario varchar(8) NOT NULL,
avatar_usuario text NULL DEFAULT 'http://www.servidor.com.br/imagem.jpg'
)


#9 Membro offline   João Gabriel G. Ícone

  • João Gabriel G.
  • Ícone
  • Grupo: Membros
  • Posts: 18
  • Cadastrado: 01-outubro 09
  • Sexo:Masculino
  • Localização:São Paulo / SP

Postou 05 novembro 2009 - 13:06

Que estranho...comigo não deu certo isso...lá no MySQL eu defini simplesmente o nome da imagem como default. Ex: "imagem.png". Mas vou revisar a tabela e verificar se tá tudo ok. Valeu aee!

#10 Membro offline   Daniel Filho Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 115
  • Cadastrado: 24-agosto 09
  • Sexo:Masculino

Postou 05 novembro 2009 - 13:23

Tipo, tenta definir um endereço pro default da imagem, e na hora de fazer a consulta deixa ela exibindo.

#11 Membro offline   João Gabriel G. Ícone

  • João Gabriel G.
  • Ícone
  • Grupo: Membros
  • Posts: 18
  • Cadastrado: 01-outubro 09
  • Sexo:Masculino
  • Localização:São Paulo / SP

Postou Ontem, 16:17

Eu fiz o select pra retornar o nome da imagem atual cadastrada no MySQL, mas não deu certo. O que ocorre é que o update p/ o nome da imagem não tá acontecendo. A minha situação é a seguinte: o cliente irá somente atualizar o conteúdo textual do site, então as imagens por enquanto não irão mudar, e conseqüentemente, nenhuma imagem será carregada na área administrativa. Realmente estou precisando solucionar isso, mas ainda não tive sucesso.

Valeu aee!

Página 1 de 1
  • Novo tópico
  • Responder

1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)