Ir para conteúdo

POWERED BY:

Arquivado

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

Lilica Desenvolvimento

Preencher data como dd/mm/aaaa, mas...

Recommended Posts

Boa tardinha pra todos,

 

No meu Form, eu tenho o campo data de nascimento e outros campos que o usuario vai ter que preencher com data. eu queria que o usuario preenche-se como dd/mm/aaaa, mas o MySQL nao aceita este formato, entao eu queria pegar esses dados do Campo e converter para aaaa-mm-dd.

 

Eu comecei com esse script aqui, mas num sei pq nao esta dando certo? ele nao deveria pegar o conteudo do que foi digitado no Campo data de nascimento?

 

function ConverteData($HTTP_POST_VARS["dtNascimento"]){	if (strstr($Data, "/"))//verifica se tem a barra /	{	  $d = explode ("/", $Data);//tira a barra	  $rstData = "$d[2]-$d[1]-$d[0]";//separa as datas $d[2] = ano $d[1] = mes etc...	  return $rstData;	} elseif(strstr($Data, "-")){	  $d = explode ("-", $Data);	  $rstData = "$d[2]/$d[1]/$d[0]";	  return $rstData;	}else{	  return "Data invalida";   }}

Compartilhar este post


Link para o post
Compartilhar em outros sites

//converter data DD/MM/AAAA para AAAA-MM-DD  ----------------------------------------function data_mysql($data){	$data = explode("/",$data);			$novadata = $data[2].'-'.$data[1].'-'.$data[0];	return $novadata;}//converter data AAAA-MM-DD  DD/MM/AAAA ----------------------------------------function mysql_data($data){	$data = explode("-",$data);			$novadata = $data[2].'/'.$data[1].'/'.$data[0];	return $novadata;}

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

$data = implode("-", array_reverse( explode("/", $_POST["data"])));
Ali aonde esta $_POST["data"] eu tenho que colocar o Nome do INPUT que o usuario vai digitar a Data? é isso?Por exemplo, o Input que vai data está assim:
<td width="230" class="fontNormal01"> 		<input type="text" name="dtBatizado" value="" size="15" maxlength="10" class="box">		Ex.: dd/mm/aaaa</td>
Logo o codigo para converter tem que estar assim?
$data = implode("-", array_reverse( explode("/", $_POST["dtBatizado"])));
Pq se for nao deu muito certo, ta retornando este erro:

Incorrect date value: 'dtBatizado' for column 'dtbatizado' at row 1

Fabyo pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso o nome do input, agora seu erro é em outro lugar posta o script que você ta gravando no banco

OIa, como eu sou uma Nooba ainda em PHP eu usei o Dream Weaver. O Form ta chamando esse codigo ai embaixo:
$editFormAction = $HTTP_SERVER_VARS['PHP_SELF'];if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {  $editFormAction .= "?" . $HTTP_SERVER_VARS['QUERY_STRING'];}
Mas agora o Insert, esta assim:
if ((isset($HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form1")) {$dtBatizado = implode("-", array_reverse(explode("/",$_POST["dtBatizado"])));  $insertSQL = sprintf("INSERT INTO cadmembros (nome, sobrenome, dtNascimento, endereco, complemento, cep, rg, cpf, tipoMbr, fone, celular, foneComercial, email, profissao, condSocial, tipoAjuda, batizado, dtBatizado, mbrDesde, obs) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, '%s', %s, %s)",					   GetSQLValueString($HTTP_POST_VARS['nome'], "text"),					   GetSQLValueString($HTTP_POST_VARS['sobrenome'], "text"),					   GetSQLValueString($HTTP_POST_VARS['dtNascimento'], "date"),					   GetSQLValueString($HTTP_POST_VARS['endereco'], "text"),					   GetSQLValueString($HTTP_POST_VARS['complemento'], "text"),					   GetSQLValueString($HTTP_POST_VARS['cep'], "text"),					   GetSQLValueString($HTTP_POST_VARS['rg'], "text"),					   GetSQLValueString($HTTP_POST_VARS['cpf'], "text"),					   GetSQLValueString($HTTP_POST_VARS['tipoMbr'], "text"),					   GetSQLValueString($HTTP_POST_VARS['fone'], "text"),					   GetSQLValueString($HTTP_POST_VARS['celular'], "text"),					   GetSQLValueString($HTTP_POST_VARS['foneComercial'], "text"),					   GetSQLValueString($HTTP_POST_VARS['email'], "text"),					   GetSQLValueString($HTTP_POST_VARS['profissao'], "text"),					   GetSQLValueString($HTTP_POST_VARS['condSocial'], "text"),					   GetSQLValueString($HTTP_POST_VARS['tipoAjuda'], "text"),					   GetSQLValueString($HTTP_POST_VARS['batizado'], "text"),																					$dtBatizado,					   GetSQLValueString($HTTP_POST_VARS['mbrDesde'], "date"),					   GetSQLValueString($HTTP_POST_VARS['obs'], "text"));  mysql_select_db($database_conn, $conn);  $Result1 = mysql_query($insertSQL, $conn) or die(mysql_error());  $insertGoTo = "formInserir.OK.php";  if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {	$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";	$insertGoTo .= $HTTP_SERVER_VARS['QUERY_STRING'];  }  header(sprintf("Location: %s", $insertGoTo));}
Ali aonde no Valor, aonde esta a variavel $dtBatizado foi eu que mudei, pois imaginei que ele deveria pegar o valor da variavel que é a data convertida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao se usa mais $HTTP_*.*_VARS troque tudo

 

$HTTP_SERVER_VARS = $_SERVER

$HTTP_POST_VARS = $_POST

 

e onde ta a parte que você ta convertendo a data?

pois ali no script ele ta pegando direto o $HTTP_POST_VARS['dtNascimento']

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz, no campo para preencher a data eu faria diferente: ao invés de fazer tudo em um só input eu separaria em 3 campos:

<input type="text" name="dtBatizado[dia]" value="" size="2" maxlength="2">		<select name="dtBatizado[mes]">			 <option value="01">Janeiro</option>			 <option value="02">Fevereiro</option>			  ....			 <option value="12">Dezembro</option>	   </select>		<input type="text" name="dtBatizado[ano]" value="" size="4" maxlength="4">Ex: 1962<br />
Mas porque eu faria assim: porque sempre vai ter aquele mané que vai preencher errado, ai o cara em vez de colocar '/' para separar a data usa '-', ou '\' ou '.' ai o implode pode dar problema, por mais que você seja cautelozo.

 

ai para montar a data certinho, você usa:

$dtBatizado = $_POST['dtBatizado']['ano'] . '-' . $_POST['dtBatizado']['mes'] . '-' . $_POST['dtBatizado']['dia'];
Claro, que não pode esquecer de validar os dados, por exemplo se no 'dia' o cara preencheu um valor entre 1 e 31 (e não esquecer de verificar os dias de fevereiro!!), se o ano é válido e assim por diante.

 

É sempre importante tomar cuidado com dados que podem gerar erros de inserção no banco de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao se usa mais $HTTP_*.*_VARS troque tudo

 

$HTTP_SERVER_VARS = $_SERVER

$HTTP_POST_VARS = $_POST

 

e onde ta a parte que você ta convertendo a data?

pois ali no script ele ta pegando direto o $HTTP_POST_VARS['dtNascimento']

qual a diferença entre o $HTTP_POST_VARS e o $_POST? So pra mim aprender... ^^

 

E a parte que ta convertendo a DATA eu coloquei em vermelho...

 

if ((isset($HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form1")) {

 

$dtBatizado = implode("-", array_reverse(explode("/",$_POST["dtBatizado"])));

 

$insertSQL = sprintf("INSERT INTO cadmembros (nome, sobrenome, dtNascimento, endereco, complemento, cep, rg, cpf, tipoMbr, fone, celular, foneComercial, email, profissao, condSocial, tipoAjuda, batizado, dtBatizado, mbrDesde, obs) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, '$dtBatizado', %s, %s)",

GetSQLValueString($HTTP_POST_VARS['nome'], "text"),

GetSQLValueString($HTTP_POST_VARS['sobrenome'], "text"),

GetSQLValueString($HTTP_POST_VARS['dtNascimento'], "date"),

GetSQLValueString($HTTP_POST_VARS['endereco'], "text"),

GetSQLValueString($HTTP_POST_VARS['complemento'], "text"),

GetSQLValueString($HTTP_POST_VARS['cep'], "text"),

GetSQLValueString($HTTP_POST_VARS['rg'], "text"),

GetSQLValueString($HTTP_POST_VARS['cpf'], "text"),

GetSQLValueString($HTTP_POST_VARS['tipoMbr'], "text"),

GetSQLValueString($HTTP_POST_VARS['fone'], "text"),

GetSQLValueString($HTTP_POST_VARS['celular'], "text"),

GetSQLValueString($HTTP_POST_VARS['foneComercial'], "text"),

GetSQLValueString($HTTP_POST_VARS['email'], "text"),

GetSQLValueString($HTTP_POST_VARS['profissao'], "text"),

GetSQLValueString($HTTP_POST_VARS['condSocial'], "text"),

GetSQLValueString($HTTP_POST_VARS['tipoAjuda'], "text"),

GetSQLValueString($HTTP_POST_VARS['batizado'], "text"),

GetSQLValueString($HTTP_POST_VARS['dtBatizado'], "text"),

GetSQLValueString($HTTP_POST_VARS['mbrDesde'], "date"),

GetSQLValueString($HTTP_POST_VARS['obs'], "text"));

 

mysql_select_db($database_conn, $conn);

$Result1 = mysql_query($insertSQL, $conn) or die(mysql_error());

 

$insertGoTo = "formInserir.OK.php";

if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {

$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";

$insertGoTo .= $HTTP_SERVER_VARS['QUERY_STRING'];

}

header(sprintf("Location: %s", $insertGoTo));

}

Aew FAbyo eu consegui, eu fiz assim...

 

if ((isset($HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form1")) {

 

$dtBatizado = implode("-", array_reverse(explode("/",$_POST["dtBatizado"])));

 

$insertSQL = sprintf("INSERT INTO cadmembros (nome, sobrenome, dtNascimento, endereco, complemento, cep, rg, cpf, tipoMbr, fone, celular, foneComercial, email, profissao, condSocial, tipoAjuda, batizado, dtBatizado, mbrDesde, obs) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",

GetSQLValueString($HTTP_POST_VARS['nome'], "text"),

GetSQLValueString($HTTP_POST_VARS['sobrenome'], "text"),

GetSQLValueString($HTTP_POST_VARS['dtNascimento'], "date"),

GetSQLValueString($HTTP_POST_VARS['endereco'], "text"),

GetSQLValueString($HTTP_POST_VARS['complemento'], "text"),

GetSQLValueString($HTTP_POST_VARS['cep'], "text"),

GetSQLValueString($HTTP_POST_VARS['rg'], "text"),

GetSQLValueString($HTTP_POST_VARS['cpf'], "text"),

GetSQLValueString($HTTP_POST_VARS['tipoMbr'], "text"),

GetSQLValueString($HTTP_POST_VARS['fone'], "text"),

GetSQLValueString($HTTP_POST_VARS['celular'], "text"),

GetSQLValueString($HTTP_POST_VARS['foneComercial'], "text"),

GetSQLValueString($HTTP_POST_VARS['email'], "text"),

GetSQLValueString($HTTP_POST_VARS['profissao'], "text"),

GetSQLValueString($HTTP_POST_VARS['condSocial'], "text"),

GetSQLValueString($HTTP_POST_VARS['tipoAjuda'], "text"),

GetSQLValueString($HTTP_POST_VARS['batizado'], "text"),

GetSQLValueString($dtBatizado, "text"),

GetSQLValueString($HTTP_POST_VARS['mbrDesde'], "date"),

GetSQLValueString($HTTP_POST_VARS['obs'], "text"));

 

mysql_select_db($database_conn, $conn);

$Result1 = mysql_query($insertSQL, $conn) or die(mysql_error());

 

$insertGoTo = "formInserir.OK.php";

if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {

$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";

$insertGoTo .= $HTTP_SERVER_VARS['QUERY_STRING'];

}

header(sprintf("Location: %s", $insertGoTo));

}

Meu muito obrigadinha pela ajuda.

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.