Jump to content


Photo

Problema Com Datas


  • Faça o login para participar
16 replies to this topic

#1 Kessia

Kessia

    12 Horas

  • Usuários
  • 127 posts
  • Sexo:Não informado

Posted 17/06/2005, 09:48

Acho q apergunta foi feita no forum errado. Se nao estiver no lugar certo, pode move-la. Eh o seguinte: no banco de dados tenho um campo data, do tipo date. E qdo preencho o meu formulario tenho uma funcao q qdo digito a data jah transforma a data assim: 19/11/2000. Soh preciso digitar os numeros, o problema q estou tendo eh q a data neste formato 11/11/1990 nao insere no bd. No bd aparece assim: 0000-00-00. Como faco para inserir no bd no formato: 12/12/2000. Estou precisando inserir neste formato, mas nao estou conseguindo. Se alguem tiver uma sugestao, agradeco.
T+,
Késsia

#2 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 17/06/2005, 09:53

Se tem que ser neste formato, então o tipo do campo tem que ser CHAR ou VARCHAR.

Para inserir a data 11/11/1990 no formato 1990-11-11 você pode usar a seguinte expressão:

function formataMysql($strdata) {
    ereg("([0-9]{2})/([0-9]{2})/([0-9]{4})", $strdata, $vdata);
    return "{$vdata[3]}-{$vdata[2]}-{$vdata[1]}";
}


------
Mero mortal!

#3 Kessia

Kessia

    12 Horas

  • Usuários
  • 127 posts
  • Sexo:Não informado

Posted 17/06/2005, 10:24

Oi!!!
O q preciso eh inserir no bd, qdo o cliente digitar 11/11/2000. Mas como lah estah do tipo date e no formato 2000-11-11, qdo peco para inserir no bd, aparece 0000-00-00. Nao insere nada no bd.
Késsia

#4 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 17/06/2005, 10:28

Então vc usa esta função que acabei de informar... como vc pode usar?

<?
function formataMysql($strdata) {
    ereg("([0-9]{2})/([0-9]{2})/([0-9]{4})", $strdata, $vdata);
    return "{$vdata[3]}-{$vdata[2]}-{$vdata[1]}";
}

$sql = "insert tabela (data) values (".formataMysql("17/06/2005").")";

echo $sql;
?>


------
Mero mortal!

#5 Kessia

Kessia

    12 Horas

  • Usuários
  • 127 posts
  • Sexo:Não informado

Posted 17/06/2005, 10:42

Oi!!!

Desculpe a persistencia, mas nao inseriu nada no bd.
Késsia

#6 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 17/06/2005, 10:48

Qual código vc usou para inserir no BD?
------
Mero mortal!

#7 Kessia

Kessia

    12 Horas

  • Usuários
  • 127 posts
  • Sexo:Não informado

Posted 17/06/2005, 11:01

Estou usando assim:

$sql = mysql_query("INSERT INTO cadastro(nome, fantasia, endereco, bairro, cidade, estado, cep, ddd, fone, ddd1, fax, enderecocom, bairrocom, cidadecom, estadocom, cepcom, dddcom, fonecom, cnpj1, cnpj2, cnpj3, inscricao, email, datanasc, estadocivil, site, informacao)
VALUES('$_POST[nome]','$_POST[fantasia]','$_POST[endereco]','$_POST[bairro]','$_POST[cidade]','$_POST[estado]','$_POST[cep]','$_POST[ddd]','$_POST[fone]','$_POST[ddd1]','$_POST[fax]','$_POST[enderecocom]','$_POST[bairrocom]','$_POST[cidadecom]','$_POST[estadocom]','$_POST[cepcom]','$_POST[dddcom]','$_POST[fonecom]','$_POST[tudojunto]','$_POST[cnpj2]','$_POST[cnpj3]','$_POST[inscricao]','$_POST[email]','$_POST[datanasc]','$_POST[estadocivil]','$_POST[site]','$_POST[informacao]')")

Késsia

#8 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 17/06/2005, 11:04

Tente usar fazendo da seguinte forma:

function formataMysql($strdata) {
    ereg("([0-9]{2})/([0-9]{2})/([0-9]{4})", $strdata, $vdata);
    return "{$vdata[3]}-{$vdata[2]}-{$vdata[1]}";
}

$data_nascimento = formataMysql($_POST[datanasc]);

$sql = mysql_query("INSERT INTO cadastro(nome, fantasia, endereco, bairro, cidade, estado, cep, ddd, fone, ddd1, fax, enderecocom, bairrocom, cidadecom, estadocom, cepcom, dddcom, fonecom, cnpj1, cnpj2, cnpj3, inscricao, email, datanasc, estadocivil, site, informacao)
VALUES('$_POST[nome]','$_POST[fantasia]','$_POST[endereco]','$_POST[bairro]','$_POST[cidade]','$_POST[estado]','$_POST[cep]','$_POST[ddd]','$_POST[fone]','$_POST[ddd1]','$_POST[fax]','$_POST[enderecocom]','$_POST[bairrocom]','$_POST[cidadecom]','$_POST[estadocom]','$_POST[cepcom]','$_POST[dddcom]','$_POST[fonecom]','$_POST[tudojunto]','$_POST[cnpj2]','$_POST[cnpj3]','$_POST[inscricao]','$_POST[email]','$data_nascimento','$_POST[estadocivil]','$_POST[site]','$_POST[informacao]')")


------
Mero mortal!

#9 Kessia

Kessia

    12 Horas

  • Usuários
  • 127 posts
  • Sexo:Não informado

Posted 17/06/2005, 13:36

Ola!!!

eu novamente. Continua nao inserindo no bd.
Késsia

#10 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 17/06/2005, 13:39

Tem certeza que o problema esta na data?

Todas as outras informações são inseridas, menos a data?
Qual é a mensagem de erro?
------
Mero mortal!

#11 Kessia

Kessia

    12 Horas

  • Usuários
  • 127 posts
  • Sexo:Não informado

Posted 17/06/2005, 14:22

Ola!!!

Nao dah nenhuma mensagem de erro.
E as outras informacoes sao inseridas normalmente.
Na minha tabela o campo datanasc tem o tipo date.
E qdo entro com a data tenho uma funcao apenas para digitar os numeros 12122000 e esta funcao formata a data em 12/12/2000. Ai qdo peco para inserir no bd, nao estah inserindo. E lah no bd aparece a data assim: 0000-00-00.
Késsia

#12 nick171

nick171

    <? if => erro ?>

  • Usuários
  • 612 posts
  • Sexo:Não informado

Posted 17/06/2005, 14:29

Coloca o campo data em varchar

E isso no arquivo que grava os dados.
$data = date("d/m/Y");

Dai só colocacar

$sql = mysql_query("INSERT INTO cadastro(nome, fantasia, endereco, bairro, cidade, estado, cep, ddd, fone, ddd1, fax, enderecocom, bairrocom, cidadecom, estadocom, cepcom, dddcom, fonecom, cnpj1, cnpj2, cnpj3, inscricao, email, datanasc, estadocivil, site, informacao)
VALUES('$_POST[nome]','$_POST[fantasia]','$_POST[endereco]','$_POST[bairro]','$_POST[cidade]','$_POST[estado]','$_POST[cep]','$_POST[ddd]','$_POST[fone]','$_POST[ddd1]','$_POST[fax]','$_POST[enderecocom]','$_POST[bairrocom]','$_POST[cidadecom]','$_POST[estadocom]','$_POST[cepcom]','$_POST[dddcom]','$_POST[fonecom]','$_POST[tudojunto]','$_POST[cnpj2]','$_POST[cnpj3]','$_POST[inscricao]','$_POST[email]','$data','$_POST[estadocivil]','$_POST[site]','$_POST[informacao]')")
Nícolas Vieira Rossett


"O maior segredo da vida é que a mesma não é um processo de descoberta, mas sim de criação.
Você não está se descobrindo, mas se recriando.
Por isso não tente descobrir quem você é, mas busque determinar... "Quem você quer ser"!!!

#13 Kessia

Kessia

    12 Horas

  • Usuários
  • 127 posts
  • Sexo:Não informado

Posted 17/06/2005, 14:48

Ops!!!
Olhei errado!
Nao funcionou nao. Agora nada eh inserido no bd. O campo na tabela fica em branco.
Késsia

Edição feita por: Kessia, 17/06/2005, 15:26.


#14 Kessia

Kessia

    12 Horas

  • Usuários
  • 127 posts
  • Sexo:Não informado

Posted 17/06/2005, 16:02

Soh para entender esta funcao:

function formataMysql($strdata) {
ereg("([0-9]{2})/([0-9]{2})/([0-9]{4})", $strdata, $vdata);
return "{$vdata[3]}-{$vdata[2]}-{$vdata[1]}";
}

$data_nascimento = formataMysql($_POST[datanasc]);

$strdata recebe a data q digitei no campo
e a variavel $vdata? q valor eh passado para ela?

Késsia

#15 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 17/06/2005, 16:08

$vdata é um vetor, que recebe, respectivamente, os valores do DIA, MES e ANO, separado-os nos indices 1, 2 e 3.
------
Mero mortal!




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq