Ir para conteúdo

POWERED BY:

Arquivado

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

MauMau220²

[Resolvido] Formatando datas no MySQL

Recommended Posts

Fala galera,

 

tenho um formulário simples para envio de dados pelo php para o MySQL,

só que o campo aniversario por padrão do SQL, esta como date,

e esse valor é gravado no formato aaaa/mm/dd.

 

Como faço para que eu possa, no formulário, inserir o formato dd/mm/aaaa,

e ao enviar para o BD ele converta esses valores para o padrão aaaa/mm/dd.

 

Consigo puxar do BD aaaa/mm/dd e converter para dd/mm/aaaa,

mas não consigo fazer com que aconteça o contrário ao enviar o form.

 

segue abaixo o cód.

 

function insereCliente($info,$table){
 $count = 1;  //Contador para auxiliar na colocação das virgula
 foreach($info as $key=>$value){
   $fields .= $key;  //Montagem da query
   $values .= "'".$value."'";  //Montagem da query
   if($count < sizeof ($info)){
     $fields .= ","; //Inserção das virgulas
     $values .= ","; //Inserção das virgulas
   }
   $count++;
 }
 mysql_query ("INSERT INTO $table($fields) VALUES($values)");  //Realização da query
 return (mysql_affected_rows () == 1) ? true : false;  //Testa se a linha foi inserida no BD
}

mysql_connect ("SERVIDOR","USUARIO","SENHA");  //conexão com o banco de dados(coloque os seus valores!)
mysql_select_db ("TABELA");  //Definição do banco de dados a ser usado(escolha o seu!)

if(isset ($_POST[id])){  //Testa se o form foi postado
 if(insereCliente($_POST,"cliente")){  //Chama a função
   echo  "Cliente Cadastrado com Sucesso!"; 
 }
 else{
   echo  "Falha ao Cadastrar Cliente!";
 }
}
else{ //se não foi postado imprime o form

?>  
    <form method="post" name="CadastroCliente" action="<?php $PHP_SELF;?>">
    <input type="hidden" name="id" value="0">          
     Nome:<br><input type="text" name="nome"><br>
     Sobrenome:<br><input type="text" name="sobrenome"><br>
     Telefone:<br><input type="text" name="telefone"><br>
     Aniversário:<br><input type="text" name="aniversario" value="aaaa-mm-dd"><br> 
     Endereço:<br><textarea name="endereco"></textarea><br>
     <input type="submit" value="Cadastrar Cliente">
</form>
<?
}
?>

 

 

A estrutura da tabela esta como:

 

CREATE TABLE `cliente` (
 `id` int(100) NOT NULL auto_increment,
 `nome` varchar(100) NOT NULL,
 `sobrenome` varchar(200) NOT NULL,
 `endereco` text NOT NULL,
 `telefone` varchar(12) NOT NULL,
 `aniversario` date NOT NULL,
 UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;

 

 

Alguém consegue me ajudar?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode usar as funções abaixo para inverter os valores, explodindo eles na / (ex.: 01/01/2011), invertendo os valores e juntando eles depois com -, ai na hora de gravar ele vai gravar certo, só que o usuário irá digitar igual no exemplo acima.

 

$aniversario= implode('-', array_reverse(explode('/',$_POST['aniversario'])));

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.