rafasemed 0 Denunciar post Postado Dezembro 9, 2009 gostaria de saber como trabalhar com data !!!! tenho um campo inputtype e gostaria de ter uma regra que quando as pessoas fossem digitar a data ela colocasse o numero e ja tivesse pre formatado assim / / / as barras separando dia mes e ano nos numeros , e o que eu ponho no arquivo que grava no bando de dados , e para visualizar , se alguem puder me ajudar agradeço , muito obrigado amigos , vcs tem me ajudado muito . Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Dezembro 9, 2009 JavaScript, Nao PHP. Mas vou te ajudar. Primeiro a função javascript: <script type='text/javascript'> function MascaraData(obj) { switch (obj.value.length) { case 2: obj.value = obj.value + "/"; break; case 5: obj.value = obj.value + "/"; break; } } </script> E no Input Type assim: <input type='text' name='data_nascimento' maxlength='10' size='14' onKeyPress='MascaraData(this);'> Isso vai acontecer na hora da digitação, testa ae! Compartilhar este post Link para o post Compartilhar em outros sites
rafasemed 0 Denunciar post Postado Dezembro 9, 2009 caraca irmão show de bola funcionou !! dai eu coloco $data_naiscimento = date("d/m/y"); no arquivo que grava no banco de dados ? Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Dezembro 9, 2009 Nao. Fazendo assim você está colocando a data atual. Pra você gravar no banco de dados, você faz normalmente como vai fazer com todas as outras informações. você tem o Formulário e a Página PHP que vai receber as informações neh ?? Dae você pega a Data de Nascimento: $data_nascimento = $_POST['data_nascimento']; Dae você coloca assim no Insert: INSERT INTO TABELA(DATA_NASCIMENTO) VALUE(CONVERT(DATETIME,'$data_nascimento',103)) Observe que isto é só um exemplo! =) Compartilhar este post Link para o post Compartilhar em outros sites
rafasemed 0 Denunciar post Postado Dezembro 9, 2009 ficou um puco confuso o lan do value para mim o meu arquivo inset esta assim : <?php $host = "localhost"; $usuario = "root"; $senha = ""; $database = "banco"; $conexao = mysql_connect($host, $usuario, $senha); mysql_select_db($database, $conexao); $sgl = mysql_query("SELECT * FROM pt"); // codigo sgl que seleciona a tabela com os dados while($dados = mysql_fetch_array($sgl)) //comando que coloca num array todos os registros existentes na tabela $nome = $_POST["nome"]; $data_nascimento = $_POST['data_nascimento']; $opcao = $_POST["opcao"]; $end = $_POST["end"]; $bairro = $_POST["bairro"]; $municipio = $_POST["municipio"]; $estado = $_POST["estado"]; $cep = $_POST["cep"]; $titulo = $_POST["titulo"]; $zona = $_POST["zona"]; $secao = $_POST["secao"]; $cpf = $_POST["cpf"]; $email = $_POST["email"]; $tel = $_POST["tel"]; $cel = $_POST["cel"]; $cargo = $_POST["cargo"]; $nivel = $_POST["nivel"]; $sgl = "INSERT into pt (nome, date, opcao, end, bairro, municipio, estado, cep, titulo, zona, secao, cpf, email, tel, cel, cargo, nivel) values ('$nome','$data','$opcao','$end','$bairro','$municipio','$estado','$cep','$titulo','$zona','$secao','$cpf','$email','tel','$cel','$cargo','$nivel')"; mysql_query($sgl); //executa a query echo"<script>location='cadastroescola.php';alert('Inserido com Sucesso!');</script>"; ?> outra duvida devo por no meu bando mysql datatime Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Dezembro 9, 2009 Se você colocar a data assim, ela vai ficar como uma string. O correto é gravar como formato DATE e no padrão Mysql (AAAA-MM-DD). Para transformar de um formato para outro, você pode usar uma função do André D. Molin, que tem no laboratório de scripts. http://forum.imasters.com.br/index.php?/topic/361977-funcao-para-converter-datas-do-mysql-e-vice-versa/ Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
rafasemed 0 Denunciar post Postado Dezembro 10, 2009 agora você me confundiu de fez o exemplo acima não cerve ??? poasta algo ai para que eu tenha uma melhor visao da coisa .obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Dezembro 11, 2009 Assim... <?php /** * Função que converte uma data de YYYY-MM-DD para DD/MM/YYYY e vice-versa. * O tipo da data é automaticamente detectado. Caso não seja nenhum dos dois, a função * retorna uma mensagem de erro. * * @author André D. Molin <contato@dmolin.com.br> * @version 1.2 * @since 02/09/2009 * * @string $data (YYYY-MM-DD ou DD/MM/YYYY) */ function ConverterDataDB ($data) { $patternBr = "^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)[0-9]{2}^"; $patternMySQL = "^(19|20)[0-9]{2}[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])^"; if ( preg_match($patternBr, $data, $matchesBr) === 1 ) { if ( checkdate($matchesBr[1], $matchesBr[0], $matchesBr[2]) ) { trigger_error('A data '.$data.' é inválida', E_USER_ERROR); } $output = implode('-', array_reverse(explode('/', $data))); } elseif ( preg_match($patternMySQL, $data, $matchesMySQL) === 1 ) { if ( checkdate($matchesMySQL[1], $matchesMySQL[2], $matchesMySQL[0]) ) { trigger_error('A data '.$data.' é inválida', E_USER_ERROR); } $output = implode('/', array_reverse(explode('-', $data))); } else { trigger_error('A data '.$data.' é inválida', E_USER_ERROR); } return $output; } ?> $data_nascimento = ConverterDataDB($_POST['data_nascimento']); Só isto... Desde que o campo da data esteja como DATE no Mysql. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
rafasemed 0 Denunciar post Postado Dezembro 14, 2009 coloquei assim mais tha dando error Notice: Undefined index: data_naiscimento in C:\wamp\www\b\index.php on line 48 Notice: Undefined variable: date in C:\wamp\www\b\index.php on line 52 que erro é esse ? <?php $host = "localhost"; $usuario = "root"; $senha = ""; $database = "banco"; $conexao = mysql_connect($host, $usuario, $senha); mysql_select_db($database, $conexao); $sgl = mysql_query("SELECT * FROM teste"); // codigo sgl que seleciona a tabela com os dados while($dados = mysql_fetch_array($sgl)) //comando que coloca num array todos os registros existentes na tabela ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Documento sem título</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <form method="POST"> <p> <input type='text' name='data_nascimento' maxlength='10' size='14' onKeyPress='MascaraData(this);'> <input name="submit" type="submit" value="Enviar" /> </form> <script type='text/javascript'> function MascaraData(obj) { switch (obj.value.length) { case 2: obj.value = obj.value + "/"; break; case 5: obj.value = obj.value + "/"; break; } } </script> <?php $data_naiscimento = $_POST["data_naiscimento"]; $sgl ="INSERT INTO teste (data_naiscimento) VALUES ('$data_naiscimento')"; mysql_query($sgl); //executa a query ?> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Dezembro 14, 2009 O seu name do input da data de nascimento <input type='text' name='data_nascimento' maxlength='10' size='14' onkeypress='MascaraData(this);'> agora o seu POST $data_naiscimento = $_POST["data_naiscimento"]; Ta certo isso ?? olha como você escreveu. E outra, você ta fazendo tudo na msm página, inicialmente o POST vem vazio. Por isso dá esse erro ae! Compartilhar este post Link para o post Compartilhar em outros sites
rafasemed 0 Denunciar post Postado Dezembro 14, 2009 ok isso eu resolvi mais no meu banco recebe só um monte de zero , 0000-00-00 isso é normal ??? Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Dezembro 14, 2009 Consertou no seu Insert a variável tbm ? $sgl ="INSERT INTO teste (data_nascimento) VALUES (convert(datetime,'$data_nascimento',103))"; E veja se na tabela, você nao digitou o nome do campo data de nascimento como DATA DE NAISCIMENTO tabm http://forum.imasters.com.br/public/style_emoticons/default/natal_dry.gif Compartilhar este post Link para o post Compartilhar em outros sites
rafasemed 0 Denunciar post Postado Dezembro 14, 2009 consertei na tabela tbm , Mais ta 0000-00-00 ainda . Compartilhar este post Link para o post Compartilhar em outros sites
rafasemed 0 Denunciar post Postado Dezembro 14, 2009 separei as paginas mesmo assim não funciona , agora não esta funcionando nada !!! index <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Documento sem título</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <form action="gravar.php" method="post"> <p> <input type='text' name='data_nascimento' maxlength='10' size='14' onKeyPress='MascaraData(this);'> <input name="submit" type="submit" value="Enviar" /> </form> <script type='text/javascript'> function MascaraData(obj) { switch (obj.value.length) { case 2: obj.value = obj.value + "/"; break; case 5: obj.value = obj.value + "/"; break; } } </script> </body> </html> gravar.php <?php $host = "localhost"; $usuario = "root"; $senha = ""; $database = "banco"; $conexao = mysql_connect($host, $usuario, $senha); mysql_select_db($database, $conexao); $sgl = mysql_query("SELECT * FROM teste"); // codigo sgl que seleciona a tabela com os dados while($dados = mysql_fetch_array($sgl)) //comando que coloca num array todos os registros existentes na tabela $data_nascimento = $_POST["data_nascimento"]; $sgl ="INSERT INTO teste (data_nascimento) VALUES (convert(datetime,'$data_nascimento',103))"; mysql_query($sgl); //executa a query ?> ajuda por favor !!!! agora esta dando um erro : Notice: Undefined variable: data_nascimento in C:\wamp\www\b\gravar.php on line 19 Compartilhar este post Link para o post Compartilhar em outros sites
rafasemed 0 Denunciar post Postado Dezembro 14, 2009 cara descobri que o error 19 esta no lance do converte : $sgl ="INSERT INTO teste (data_nascimento) VALUES (convert(datetime,'$data_nascimento',103))"; eu coloquei $sgl ="INSERT INTO teste (data_nascimento) VALUES ('$data_nascimento')"; e enviou para meu banco de dados só que a hora no banco aparece 0000-00-00 Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Dezembro 14, 2009 mas a hora vai aparecer 0000000 mesmo a nao ser que você digite a hora que você nasceu =0 Compartilhar este post Link para o post Compartilhar em outros sites
rafasemed 0 Denunciar post Postado Dezembro 14, 2009 perdão hora viajei hora não a data digitei errado foi mal a data esta 0000000não hora Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Dezembro 14, 2009 Está errado os eu gravar.php, agora que vii.. faça assim: <?php $host = "localhost"; $usuario = "root"; $senha = ""; $database = "banco"; $conexao = mysql_connect($host, $usuario, $senha); mysql_select_db($database, $conexao); $data_nascimento = $_POST["data_nascimento"]; $sgl ="INSERT INTO teste (data_nascimento) VALUES ('$data_nascimento')"; mysql_query($sgl); //executa a query ?> Não precisa do While, nem do Select. E outra, quando der erro, poste o erro aqui, fica mais facil para todos Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Dezembro 14, 2009 Um exemplo legal de mascara de campo com Jquery http://digitalbush.com/projects/masked-input-plugin/ e Datepiker http://jqueryui.com/demos/datepicker/ você manda a data pro php no formato brasileiro dd/mm/yyyy e basta converter para salvar no banco no padrao DATE <?php $data = '18/05/1977'; $data = implode('-', array_reverse(explode('/', $data))); echo $data; ?> Compartilhar este post Link para o post Compartilhar em outros sites
rafasemed 0 Denunciar post Postado Dezembro 14, 2009 pow galera quero tirar uma duvida e vcs me poe mais outras , por favor se alguem puder postar ai concreto pq ja vi que tha f*** pra eu entender isso pensei que isso fosse algo mais simples por favor se alguem puder poasta algo ai para mim Compartilhar este post Link para o post Compartilhar em outros sites