Ir para conteúdo

POWERED BY:

Arquivado

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

neotheone

Campo vazio no MySQL

Recommended Posts

Fala pessoal! Tenho a seguinte dúvidaEstou montando um formulario de cadastro, onde nem todos os campos são obrigatórios, ou seja, alguns podem ficar vazios, porém quando esse campo vazio for gravado no MySQL eu gostaria que ele adicionasse tracinhos "-----------". A minha pergunta é a seguinte:Tem como pré-definir isso dentro do MySQL, ou só mesmo fazendo tratamento com programação?Pois eu queria que o próprio MySQL tratasse disso.valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

Elaborei um código para tal, segue abaixo:

 

Não modifique nada, apenas coloque o seu usuário do DB e a senha, e coloque o nome do DB.

 

Primeiro criamos a tabela:

CREATE TABLE tabela (  campo1 varchar(10) NOT NULL,  campo2 varchar(10) NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Agora vamos ao código:

 

<form name="frm" method="post" action="">Nome<input type="text" name="nome">Nome2<input type="text" name="nomea"><input type="submit" name="ok"></form><?php$link=mysql_connect("localhost","USUÁRIO_DB","SENHA_DB");mysql_select_db("BANCO_DE_DADOS",$link);$nome= $_POST['nome'];$nomea=$_POST['nomea'];$branco="-----------";if(($nome != "") and ($nomea != "")){$inserir=mysql_query("INSERT INTO tabela (campo1,campo2) VALUES ('$nome','$nomea')");}elseif(($nome == "") and ($nomea == "")){$inserir=mysql_query("INSERT INTO tabela (campo1,campo2) VALUES ('$branco','$branco')");}elseif(($nome != "") and ($nomea =="")){$inserir=mysql_query("INSERT INTO tabela (campo1,campo2) VALUES ('$nome','$branco')");}elseif(($nome == "") and ($nomea !="")){$inserir=mysql_query("INSERT INTO tabela (campo1,campo2) VALUES ('$branco','$nomea')");}?>

http://forum.imasters.com.br/public/style_emoticons/default/shifty.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, você pode tratar isso no código como o The Cod fez ou automatizar a coisa e escrever mesno código adicionando uma restrição de domínio na criação da tabela. Observe o CREATE TABLE:

 

CREATE TABLE tabela (
  campo1 varchar(10) NULL DEFAULT '---------',
  campo2 varchar(10) NULL DEFAULT '---------'
) ENGINE=MyISAM;

 

...você pode colocar o seu INSERT de forma a pegar os valores que fora informados ou não. Caso campo1 seja informado e campo 2 não, o registro ficará da seguinte forma:

 

mysql> SELECT * FROM t;
+--------+--------+
| campo1 | campo2 |
+--------+--------+
| wagner | ------ |
+--------+--------+
1 row IN SET (0.00 sec)

 

Colocar direto no banco pode lhe dar mais performance em relação a telas que fazer interface do sistema com o mundo externo, quanto menos IF's, melhor!

 

Abração!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

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.