Olá a todos. O artigo desta semana, como outros mais, foi uma sugestão de leitores. Como disse a vocês, não hesitem em enviar-me suas sugestões, uma vez que quero escrever artigos sempre para o agrado de todos vocês. Então, além de pedir novamente sugestões, hoje vou além. Gostaria de perguntar-lhe o que acha da minha didática para escrever. Me informe se os textos estão de fácil compreensão (minha preocupação principal), com boa leitura, e por aí vai. Conto com vocês.
No artigo Formatar datas no MySQL com SQL ou PHP, aprendemos como exibir as datas armazenadas em um banco de dados MySQL com uma formatação desejada. Além disso, conhecemos a forma correta de armazenar as datas no banco, e vimos que podemos utilizar SQL ou PHP para formatá-las. Hoje, faremos o seguinte: como inserir datas no banco de dados MySQL de forma correta, seja através de instrução SQL ou via PHP.
Primeiramente, utilize a instrução SQL a seguir para criar a tabela que utilizaremos como exemplo.
CREATE TABLE inserir_datas (
id smallint(5) unsigned NOT NULL auto_increment,
data date NOT NULL default '0000-00-00',
texto varchar(100) NOT NULL default '',
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
Com a tabela criada, e com uma página, em PHP, aberta no Dreamweaver, façamos o seguinte: utilize o behavior Insert Record Form Wizard para criar o formulário e os códigos necessários para a inserção dos dados no banco de dados (não vou explicar os passos para esse processo, assumindo que você tenha tal conhecimento. Caso não o tenha, leia o artigo, Formatar datas no MySQL com SQL ou PHP, e veja o procedimento).
Bom, agora precisamos responder as seguintes perguntas: o usuário irá informar a data a ser inserida? Ou ela (data) será criada automaticamente? Vamos levar em consideração ambas as perguntas e aprender como lidar com tais situações.
Como é de seu conhecimento, as datas são armazenadas no banco com o seguinte formato: aaaa-mm-dd; e os usuários brasileiro não gostarão de ter que digitar uma data em tal formato; afinal eles usam o formato dd/mm/aaaa. No artigo, Formatar datas no MySQL com SQL ou PHP, você aprenderá sobre essa questão de formatos de data. Então, precisaremos inserir a data com a seguinte lógica:
- O usuário informará no formato padrão brasileiro: dd/mm/aaaa;
- Transformaremos a data para o padrão utilizado no MySQL: aaaa-mm-dd;
- Após a transformação, a data será inserida.
Primeiro, vamos analisar os procedimentos que o Dreamweaver utiliza, para sabermos como adaptá-lo. Observe a imagem abaixo:
Exemplo de preparação dos dados a serem inseridos.
Como, você pode perceber, o Dreamweaver utiliza a função GetSQLValueString para analisar o tipo de dado a ser inserido. Criei uma simples função para fazer a conversão da data, ou seja, receberá a data no formato dd/mm-aaaa e retornará aaaa-mm-dd. Observe as modificações:
Exemplo de como utilizar a função para converter a data.
Código da função utilizada.
/**
* Por Leandro Vieira Pinho
* http://leandro.w3invent.com.br
**/
function converter_data(strData) {
// Recebemos a data no formato: dd/mm/aaaa
// Convertemos a data para o formato: aaaa-mm-dd
if ( preg_match("/",strData) == 1 ) {
strDataFinal = "'";
strDataFinal .= implode('-', array_reverse(explode('/',strData)));
strDataFinal .= "'";
}
return strDataFinal;
}
Como você percebeu, ao invés de usarmos a função GetSQLValueString, utilizamos a função converter_data que fará com que nosso objetivo seja alcançado.
Agora, faremos todo esse processo de uma outra maneira, mais simples e rápido; utilizando um simples comando SQL. Tal comando, ao qual me refiro é o NOW() que, falando de maneira simples, retorna a data e o horário.
Sendo assim, não precisaremos do campo de formulário onde o usuário digitaria a data. O que significa dizer, que você poderá deleta-lo. Agora, observe a modificação no código:
Exemplo de como inserir a data utilizando o comando NOW().
Simples, não é?
Se desejar, você pode baixar ambos os exemplos e analisá-los. No mais, espero que tenham gostado. Um forte abraço a todos.
Fonte: www.imasters.com.br