Converter e gravar data dia/mm/ano no MySql
Author: Romualdo R.
Visited 881,
Followers 1,
Shared 0
Olá. Estou com um problema, preciso gravar informações a partir de um formulário de cadastro, o campo de datas dia/mês/ano ex.: "22/12/2015", não é aceito no banco de dados MySql, que trabalha com ano-mês-dia.
Minha pergunta é como posso inverter a informação de data no código para gravar no banco de dados???
segue anexo o arquivo de recebimento de dados do formulário e gravação no banco de dados.
Posted on the
segue uma função que eu utilizo para gravar e outra para exibir os dados,
function GravarData ($Data){
if ($Data == ""){
return "";
}
$Dados = explode("/", $Data);
$Data_Mysql = "{$Dados[2]}-{$Dados[1]}-{$Dados[0]}";
return $Data_Mysql;
}
function ExibirData ($Data){
if ($Data == "" OR $Data == "0000-00-00"){
return "";
}
$Dados = explode("-", $Data);
$Data_Exibe = "{$Dados[2]}/{$Dados[1]}/{$Dados[0]}";
return $Data_Exibe;
}
esta linha faz exibir os dados
<?php echo ExibirData($Data); ?> trocar ExibeData para GravarData quando for gravar no DB
Author
Desculpe incomodar mais, é que agora apresenta o erro: "Call to undefined function GravarData()..."
Devo estar fazendo algo errado, vou postar apenas o trecho que usei a função:
?php
if(substr(basename($_SERVER['PHP_SELF']), 0, 11) == "imEmailForm") {
include '../res/x5engine.php';
$form = new ImForm();Form();...
...$form->setField('Dia', $_POST['imObjectForm_1_20'], '', false);
$form->setField('Mês', $_POST['imObjectForm_1_21'], '', false);
$form->setField('Ano', $_POST['imObjectForm_1_22'], '', false);
$hab_validade=GravarData($_POST['val_hab']);
$form->setField('Validade:', $hab_validade, 'hab_validade', false);
Inseri a função no arquivo "x5engine.php".
Faça um arquivo chamado function.php e coloque as funções que lhe mandei, depois faça assim no seu arquivo.
include "function.php";
é para resolver.
Author
obrigado! Não apresenta mais o erro da função, mas ainda não grava no banco de dados.
Deveria ter uma opção no proprio WebsiteX5 para conversão de data na hora de gravar no MySql, ou pelo menos a opção de um formato de data compatível com o banco de dados. fica a sugestão para um próximo update.
Author
Estou pensando em mudar o código para apresentar no formulário ano-mês-dia, não é o que o meu cliente quer mas não posso mais atrasar a entrega do site.
Romualdo, compreendi, pode ser alguma lógica na programação, depois de uma olhada com atenção pois esta rotina eu uso em todos meus projetos e funciona normalmente sem nenhum erro.
Eu utilizo o Website x5 para sites institucionais, quando o cliente quer um site admnistravel ai eu faço tudo em PHP, CSS com bootstrap que ai fica mais seguro e fácil manutenção.
att,
Uilian