Malvezzi 0 Denunciar post Postado Março 19, 2013 Bom dia pessoal! Ja procurei alguma coisa parecida no forum, mas não encontrei. Estou tendo dificuldade para gravar uma data que recebo de um form. Como estou utilizando o framework FormDin, não sei se o problema é com o Mysql ou com o framework Ja utilizei diversas funções, tando no PHP quando no Mysql, mas ou grava NULL ou 0000-00-00. Abaixo meu código, se alguém tiver uma luz... Obrigado. $dataini = $frm->get('pl_dini'); TPDOConnection::executeSql("UPDATE ap_plinha SET pl_dini= STR_TO_DATE($dataini,'%Y-%d-%m') WHERE pl_id = $dados"); Compartilhar este post Link para o post Compartilhar em outros sites
Fabiano Abreu 22 Denunciar post Postado Março 19, 2013 Olá Malvezzi, Testando o comando que nos passou: STR_TO_DATE($dataini,'%Y-%d-%m') fiz alguns testes e vi que, se você passar uma data que seja diferente do formato estipulado, por exemplo: YYYY-MM-DD a função irá lhe retornar o valor null. Então, veja se o formato passado como parâmetro está atendendo ao formato YYYY-DD-MM. Abraços. _ _ Fabiano Abreu http://paposql.blogspot.com'>Papo Sql - Um blog com tutoriais, dicas e truques sobre SQL Compartilhar este post Link para o post Compartilhar em outros sites
Malvezzi 0 Denunciar post Postado Março 19, 2013 Fabiano, Do meu form sai o padrão DD-MM-AAAA. Preciso fazer alguma conversão? Compartilhar este post Link para o post Compartilhar em outros sites
Fabiano Abreu 22 Denunciar post Postado Março 19, 2013 Malvezzi, Neste caso, você deve alterar o formato da função: De: '%Y-%d-%m' Para: '%d-%m-%Y' Abraços. _ _ Fabiano Abreu http://paposql.blogspot.com'>Papo Sql - Um blog com tutoriais, dicas e truques sobre SQL Compartilhar este post Link para o post Compartilhar em outros sites
Malvezzi 0 Denunciar post Postado Março 19, 2013 Mesmo assim, não funciona. Valeu! Compartilhar este post Link para o post Compartilhar em outros sites
Fabiano Abreu 22 Denunciar post Postado Março 19, 2013 Malvezzi, Sugiro você depurar seu código e ver o que esta sendo passado, fazendo isto, com certeza irá localizar o problema. Abraços. _ _ Fabiano Abreu http://paposql.blogspot.com'>Papo Sql - Um blog com tutoriais, dicas e truques sobre SQL Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Março 20, 2013 Qual o valor recebido na variável: $dataini ??? Compartilhar este post Link para o post Compartilhar em outros sites
Malvezzi 0 Denunciar post Postado Março 20, 2013 Alaerte, acredito que seja uma string. É um campo com mascara do Jquery, formado 00/00/0000. Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Março 20, 2013 OK, faça o seguinte: $dataini = $frm->get('pl_dini'); $nova_data = date('Y-m-d', strtotime($dataini)); TPDOConnection::executeSql("UPDATE ap_plinha SET pl_dini= '$nova_data' WHERE pl_id = $dados"); Compartilhar este post Link para o post Compartilhar em outros sites
Malvezzi 0 Denunciar post Postado Março 20, 2013 Alaerte, ele gravou 1969-12-31.... Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Março 20, 2013 então, tem que ver qual o valor que a var: $dataini = $frm->get('pl_dini'); está recebendo... se ele recebe o valor 00/00/000 ou 00-00-000 deveria gravar: 0000-00-00 Compartilhar este post Link para o post Compartilhar em outros sites
ivanferrer 5 Denunciar post Postado Março 21, 2013 O banco de dados no formato DATE é americano, e grava data em formato americano:ano-mes-diaentão, vc tem q inverter %Y-%m-%d Compartilhar este post Link para o post Compartilhar em outros sites
jmsmacedo 1 Denunciar post Postado Abril 12, 2013 Tenta isso if(isset($_POST["NOME DA SUA VARIAVEL"])) // recebe os dados postados pelo usuário no formato brasileiro { $data = implode('-',array_reverse(explode('/',$_POST['NOME DA SUA VARIAVEL']))); } e use $data para inserir no BD Abs Compartilhar este post Link para o post Compartilhar em outros sites