Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, estou fazendo um formulário de contato em PHP, onde irá ficar armazenado em um banco de dados as informações.
Bom, até ai tudo bem, o que eu estou com dificuldade é na hora de botar a data...
Eu coloquei isso para aparecer a data:
<?
$hora =date("H:i:s");
$data =date("d-m-Y");
?><input name="data" disabled="disabled" type="text" class="input" id="data" value="<? echo $data ?> - <? echo $hora ?>" />
Aparentemente havia funcionado, foi no campo DATA apareceu a DATA e a HORA, só que o que eu estou na dúvida é: POR QUE NÃO EXECUTOU NO BANCO DE DADOS?
mysql_query("INSERT INTO contato (nome , data , email , mensagem) VALUES ('$nome', '$data', '$email', '$mensagem');");
Esse é meu insert, ele está funcionando todos menos o DATA, a tabela DATA que eu estou usando, é VARCHAR:
Nome da tabela: data
Tipo: varchar(30)
Collation: latin1_swedish_ci
Nulo: Não
Quero saber, o que eu estou fazendo de errado, e se a forma que eu fiz não da certo qual o jeito certo de se fazer (e de preferencia como).
Agradeço a atenção e a ajuda de quem souber a solução!
Amigo,
cadastre no formato americano, padrao do MYSQL. Sempre declare o campo data como DATE ou DATETIME, como dito pelo amigo.
$data = date('Y-m-d'); // formato americano
para exibir no formato brasileiro use esta E.R. Ela tambem serve para converter de americano para brasileiro.
$data_br = implode(preg_match("~\/~", $data) == 0 ? "/" : "-", array_reverse(explode(preg_match("~\/~", $data) == 0 ? "-" : "/", $data)));
abçs.
ah cara eu axo tranquilo você usar na table como varchar, sem problema...
eu faria dessa forma
create table data(
data varchar(15) not null,,,,
,,,,
);
o insert seria dessa forma $sql="insert into data(data) values ('".$data."')";
caso nao dê certo tente colocar manualmente um teste na table como você esta fazendo, ou senao da um echo na variavel sql so pra ver o que esta sendo impresso, daí da pra
você ter uma noçao melhor do que está indo pro banco de dados...
Cara, duas dicas?
1) Use o campo data do tipo DATE ou DATETIME. Este último, caso queira armazenar a hora junto com a data. O formato padrão é Y-m-d H:i:s
2) Já que vai gravar a data de salvar, não precisa (a não ser que queira exibir para o usuário) colocar na view. No próprio SQL você insere a data de duas formas:
mysql_query("INSERT INTO
contato(nome,data,email,mensagem) VALUES ('$nome', now(), '$email', '$mensagem');");ou
mysql_query("INSERT INTO
contato(nome,data,email,mensagem) VALUES ('$nome', '" . date("Y-m-d H:i:s") . "', '$email', '$mensagem');");Salvar em formato DATE permite você ordenar por data, realizar cálculo de quantidade de dias, etc.