Ir para conteúdo

POWERED BY:

Arquivado

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

Deejay Wagner

Gravar data do formulário no MySQL

Recommended Posts

Ola amigos tudo bem?

estou com o seguinte problema:

tenho um formulário que grava algumas informações no banco de dados e duas dessas informações são datas gostaria de saber como faço para converter a data para o formato do MySQL sem ter que ficar digitando ao contrario como faço hoje...

poderia me dar um help!?

ja li diversos fóruns falando sobre implode e explode porem não consegui nenhum resultado

segue a baixo o cod. fonte da pagina em PHP

 

 

Seria mais fácil eu usar 3 campos tipo: dia-mês-ano e concatenar no formato que seria gravado no MySQL?

Se sim como seria o procedimento?

 

Desde já Agradeço a Atenção.

 

<?php require_once('Connections/conexao.php'); ?>
<?php
//initialize the session
if (!isset($_SESSION)) {
 session_start();
}

// ** Logout the current user. **
$logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
 $logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
 //to fully log out a visitor we need to clear the session varialbles
 $_SESSION['MM_Username'] = NULL;
 $_SESSION['MM_UserGroup'] = NULL;
 $_SESSION['PrevUrl'] = NULL;
 unset($_SESSION['MM_Username']);
 unset($_SESSION['MM_UserGroup']);
 unset($_SESSION['PrevUrl']);

 $logoutGoTo = "index.php";
 if ($logoutGoTo) {
   header("Location: $logoutGoTo");
   exit;
 }
}
?>
<?php
if (!isset($_SESSION)) {
 session_start();
}
$MM_authorizedUsers = "";
$MM_donotCheckaccess = "true";

// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) { 
 // For security, start by assuming the visitor is NOT authorized. 
 $isValid = False; 

 // When a visitor has logged into this site, the Session variable MM_Username set equal to their username. 
 // Therefore, we know that a user is NOT logged in if that Session variable is blank. 
 if (!empty($UserName)) { 
   // Besides being logged in, you may restrict access to only certain users based on an ID established when they login. 
   // Parse the strings into arrays. 
   $arrUsers = Explode(",", $strUsers); 
   $arrGroups = Explode(",", $strGroups); 
   if (in_array($UserName, $arrUsers)) { 
     $isValid = true; 
   } 
   // Or, you may restrict access to only certain users based on their username. 
   if (in_array($UserGroup, $arrGroups)) { 
     $isValid = true; 
   } 
   if (($strUsers == "") && true) { 
     $isValid = true; 
   } 
 } 
 return $isValid; 
}

$MM_restrictGoTo = "index.php";
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
 $MM_qsChar = "?";
 $MM_referrer = $_SERVER['PHP_SELF'];
 if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
 if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0) 
 $MM_referrer .= "?" . $QUERY_STRING;
 $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
 header("Location: ". $MM_restrictGoTo); 
 exit;
}
?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
 if (PHP_VERSION < 6) {
   $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
 }

 $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

 switch ($theType) {
   case "text":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;    
   case "long":
   case "int":
     $theValue = ($theValue != "") ? intval($theValue) : "NULL";
     break;
   case "double":
     $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
     break;
   case "date":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;
   case "defined":
     $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
     break;
 }
 return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
 $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}


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

 $insertSQL = sprintf("INSERT INTO tbeventos (NomeEventos, OrdemServico, DataInicio, DataFim, HorarioInicio, HorarioFim, LocalEvento, DescricaoEvento, Observacao) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)",
                      GetSQLValueString($_POST['NomeEventos'], "text"),
                      GetSQLValueString($_POST['OrdemServico'], "text"),
                      GetSQLValueString($_POST['DataInicio'], "date"),
	       GetSQLValueString($_POST['DataFim'], "date"),			
	       GetSQLValueString($_POST['HorarioInicio'], "text"),
                      GetSQLValueString($_POST['HorarioFim'], "text"),
                      GetSQLValueString($_POST['LocalEvento'], "text"),
                      GetSQLValueString($_POST['DescricaoEvento'], "text"),
                      GetSQLValueString($_POST['Observacao'], "text"));

 mysql_select_db($database_conexao, $conexao);
 $Result1 = mysql_query($insertSQL, $conexao) or die(mysql_error());

 $insertGoTo = "listar-eventos.php";
 if (isset($_SERVER['QUERY_STRING'])) {
   $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
   $insertGoTo .= $_SERVER['QUERY_STRING'];
 }
 header(sprintf("Location: %s", $insertGoTo));
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Meus Eventos</title>
<script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
<link href="SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css" />
<link href="SpryAssets/SpryMenuBarVertical.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
body,td,th {
font-family: Verdana, Geneva, sans-serif;
font-size: 12px;
}
-->
</style></head>

<body>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
 <tr>
   <td align="center" scope="col"><table width="60%" border="0" cellspacing="0" cellpadding="0">
     <tr>
       <td align="center" scope="col"><h1>Meus Eventos</h1></td>
     </tr>
   </table></td>
 </tr>
 <tr>
   <td align="center" scope="row"><table width="60%" border="0" align="center" cellpadding="0" cellspacing="0">
     <tr>
       <td width="44%" align="left" valign="middle" scope="col"><form action="menu_principal.php" method="get" name="pesquisar" id="pesquisar">
         Buscar:
         <label>
           <input type="text" name="busca" id="busca" />
           </label>
         <label>
           <input type="submit" id="enviar" value="Enviar" />
           </label>
         </form></td>
       <td width="56%" height="40" align="center" valign="middle" scope="col"><ul id="MenuBar1" class="MenuBarHorizontal">
         <li><a href="menu_principal.php">Home</a></li>
         <li><a href="listar-eventos.php">Eventos</a></li>
         <li><a href="adiciona-eventos.php">+ Evento</a></li>
         <li><a href="<?php echo $logoutAction ?>">Sair</a></li>
       </ul></td>
     </tr>
</table></td>
</tr>
 <tr>
   <td align="center" bgcolor="#FFFFF2" scope="row"><table width="60%" border="0" cellspacing="0" cellpadding="0">
     <tr>
       <td align="center" bgcolor="#FFFFF2" scope="col"><form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1">
         <table align="center">
           <tr valign="baseline">
             <td align="left" nowrap="nowrap" bgcolor="#F5F5F5"><strong>Nome Evento:</strong></td>
             <td bgcolor="#F5F5F5"><input type="text" name="NomeEventos" value="" size="32" /></td>
           </tr>
           <tr valign="baseline">
             <td align="left" nowrap="nowrap" bgcolor="#F5F5F5"><strong>Ordem Serviço:</strong></td>
             <td bgcolor="#F5F5F5"><input type="text" name="OrdemServico" value="" size="32" /></td>
           </tr>
           <tr valign="baseline">
             <td align="left" nowrap="nowrap" bgcolor="#F5F5F5"><strong>Data Inicio:</strong></td>
             <td bgcolor="#F5F5F5"><input type="text" name="DataInicio" value="" size="32" /></td>
           </tr>
           <tr valign="baseline">
             <td align="left" nowrap="nowrap" bgcolor="#F5F5F5"><strong>Data Fim:</strong></td>
             <td bgcolor="#F5F5F5"><input type="text" name="DataFim" value="" size="32" /></td>
           </tr>
           <tr valign="baseline">
             <td align="left" nowrap="nowrap" bgcolor="#F5F5F5"><strong>Horario Inicio:</strong></td>
             <td bgcolor="#F5F5F5"><input type="text" name="HorarioInicio" value="" size="32" /></td>
           </tr>
           <tr valign="baseline">
             <td align="left" nowrap="nowrap" bgcolor="#F5F5F5"><strong>Horario Fim:</strong></td>
             <td bgcolor="#F5F5F5"><input type="text" name="HorarioFim" value="" size="32" /></td>
           </tr>
           <tr valign="baseline">
             <td align="left" nowrap="nowrap" bgcolor="#F5F5F5"><strong>Local Evento:</strong></td>
             <td bgcolor="#F5F5F5"><input type="text" name="LocalEvento" value="" size="32" /></td>
           </tr>
           <tr valign="baseline">
             <td align="left" nowrap="nowrap" bgcolor="#F5F5F5"><strong>Descrição Evento:</strong></td>
             <td bgcolor="#F5F5F5"><textarea name="DescricaoEvento" cols="40" rows="5"></textarea></td>
           </tr>
           <tr valign="baseline">
             <td align="left" nowrap="nowrap" bgcolor="#F5F5F5"><strong>Observação:</strong></td>
             <td bgcolor="#F5F5F5"><textarea name="Observacao" cols="40" rows="5"></textarea></td>
           </tr>
           <tr valign="baseline">
             <td align="left" nowrap="nowrap" bgcolor="#F5F5F5"> </td>
             <td bgcolor="#F5F5F5"><input type="submit" value="Inserir registro" /></td>
           </tr>
         </table>
         <input type="hidden" name="MM_insert" value="form1" />
       </form>
         <p> </p></td>
     </tr>
   </table></td>
 </tr>
</table>
<script type="text/javascript">
<!--
var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"SpryAssets/SpryMenuBarDownHover.gif", imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});
//-->
</script>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não li seu código, pq tá grande pacas rsrs

mas tenta assim, eu uso e funciona:

$data = date("d/m/y");
$hora = date("H:i");

 

ai é só criar os campos na tabela Mysql e inserir as variáveis ;)

Na volta é que tem que formatar porque a data volta invertida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então cara como funciona hoje eu tenho campo no formulario onde eu digito a data (28-02-2012) blza..

so que eu preciso gravar essa data do formulario no banco de dados que so recebe a data (2012-02-28) certo..

 

o que eu preciso que quando eu digitar a data (28-02-2012) ele ja faça a conversao no insert para (2012-02-28) entendeu?

 

segue so a parte do insert do codigo:

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
 $insertSQL = sprintf("INSERT INTO tbeventos (NomeEventos, OrdemServico, DataInicio, DataFim, HorarioInicio, HorarioFim, LocalEvento, DescricaoEvento, Observacao) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['NomeEventos'], "text"),
                       GetSQLValueString($_POST['OrdemServico'], "text"),
                       GetSQLValueString($_POST['DataInicio'], "date"),
		GetSQLValueString($_POST['DataFim'], "date"),
		GetSQLValueString($_POST['HorarioInicio'], "text"),
                       GetSQLValueString($_POST['HorarioFim'], "text"),
                       GetSQLValueString($_POST['LocalEvento'], "text"),
                       GetSQLValueString($_POST['DescricaoEvento'], "text"),
                       GetSQLValueString($_POST['Observacao'], "text"));

 mysql_select_db($database_conexao, $conexao);
 $Result1 = mysql_query($insertSQL, $conexao) or die(mysql_error());

 

no caso o cod que você me mando so vai trazer a data que ja ta grava no banco certo??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos supor que você tenha um campo no formulário chamado data.

<input type="text" name="data" />

Neste campo você digita a data 28/02/2012.

 

No seu banco de dados você tem um campo datetime, onde o formato aceito é o 2012-02-28.

Para resolver isso, você substitui os caracteres invertendo o formato.

 

Para salvar no banco:

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

 

Quando capturar do banco, você exibirá para o usuário com:

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

No sql você pode usar STR_TO_DATE e DATE_FORMAT:

 

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
 $insertSQL = sprintf("INSERT INTO tbeventos (NomeEventos, OrdemServico, DataInicio, DataFim, HorarioInicio, HorarioFim, LocalEvento, DescricaoEvento, Observacao) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['NomeEventos'], "text"),
                       GetSQLValueString($_POST['OrdemServico'], "text"),
                       GetSQLValueString(STR_TO_DATE('$_POST['DataInicio']','%d-%m-%Y'), "date"),
		GetSQLValueString(STR_TO_DATE('$_POST['DataFim']','%d-%m-%Y'), "date"),
		GetSQLValueString($_POST['HorarioInicio'], "text"),
                       GetSQLValueString($_POST['HorarioFim'], "text"),
                       GetSQLValueString($_POST['LocalEvento'], "text"),
                       GetSQLValueString($_POST['DescricaoEvento'], "text"),
                       GetSQLValueString($_POST['Observacao'], "text"));

 mysql_select_db($database_conexao, $conexao);
 $Result1 = mysql_query($insertSQL, $conexao) or die(mysql_error());

 

Para selecionar a data direto com o formato desejado:

 

  $querySQL = sprintf("SELECT matricula, DATE_FORMAT(DataInicio,'%%d-%%m-%%Y') DataInicio FROM tbeventos WHERE 1=1");

 

Se não usar o sprintf use apenas um % -> '%d-%m-%Y'

Compartilhar este post


Link para o post
Compartilhar em outros sites

No sql você pode usar STR_TO_DATE e DATE_FORMAT:

 

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
 $insertSQL = sprintf("INSERT INTO tbeventos (NomeEventos, OrdemServico, DataInicio, DataFim, HorarioInicio, HorarioFim, LocalEvento, DescricaoEvento, Observacao) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['NomeEventos'], "text"),
                       GetSQLValueString($_POST['OrdemServico'], "text"),
                       GetSQLValueString(STR_TO_DATE('$_POST['DataInicio']','%d-%m-%Y'), "date"),
		GetSQLValueString(STR_TO_DATE('$_POST['DataFim']','%d-%m-%Y'), "date"),
		GetSQLValueString($_POST['HorarioInicio'], "text"),
                       GetSQLValueString($_POST['HorarioFim'], "text"),
                       GetSQLValueString($_POST['LocalEvento'], "text"),
                       GetSQLValueString($_POST['DescricaoEvento'], "text"),
                       GetSQLValueString($_POST['Observacao'], "text"));

 mysql_select_db($database_conexao, $conexao);
 $Result1 = mysql_query($insertSQL, $conexao) or die(mysql_error());

 

Para selecionar a data direto com o formato desejado:

 

  $querySQL = sprintf("SELECT matricula, DATE_FORMAT(DataInicio,'%%d-%%m-%%Y') DataInicio FROM tbeventos WHERE 1=1");

 

Se não usar o sprintf use apenas um % -> '%d-%m-%Y'

 

 

Olá Aline brigado pela dica.. me retorno o seguinte erro na pagina:

Parse error: syntax error, unexpected T_STRING in C:\inetpub\wwwroot\meuseventos\adiciona-eventos.php on line 117

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Aline brigado pela dica.. me retorno o seguinte erro na pagina:

Parse error: syntax error, unexpected T_STRING in C:\inetpub\wwwroot\meuseventos\adiciona-eventos.php on line 117

 

Tenta colocar (STR_TO_DATE('$_POST['DataInicio']','%%d-%%m-%%Y'), "date")

 

Tenta colocar (STR_TO_DATE('$_POST['DataInicio']','%%d-%%m-%%Y'), "date")

 

ou:

 

$insertSQL = sprintf("INSERT INTO tbeventos (NomeEventos, OrdemServico, DataInicio, DataFim, HorarioInicio, HorarioFim, LocalEvento, DescricaoEvento, Observacao) VALUES (%s, %s, STR_TO_DATE(%s,'%%d-%%m-%%Y'), STR_TO_DATE(%s,'%%d-%%m-%%Y'), %s, %s, %s, %s, %s)",

GetSQLValueString($_POST['NomeEventos'], "text"),

GetSQLValueString($_POST['OrdemServico'], "text"),

GetSQLValueString('$_POST['DataInicio'], "date"),

GetSQLValueString('$_POST['DataFim'], "date"),

GetSQLValueString($_POST['HorarioInicio'], "text"),

GetSQLValueString($_POST['HorarioFim'], "text"),

GetSQLValueString($_POST['LocalEvento'], "text"),

GetSQLValueString($_POST['DescricaoEvento'], "text"),

GetSQLValueString($_POST['Observacao'], "text"));

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aline, deu certinho fez o insert no banco..

quando eu for trazer a informação do banco de dados, o processo é o mesmo?

caso precise seque o codigo da pagina que traz e altera os dados gravados no MySQL

 

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
 $updateSQL = sprintf("UPDATE tbeventos SET NomeEventos=%s, OrdemServico=%s, DataInicio=%s, DataFim=%s, HorarioInicio=%s, HorarioFim=%s, LocalEvento=%s, DescricaoEvento=%s, Observacao=%s WHERE Id=%s",
                      GetSQLValueString($_POST['NomeEventos'], "text"),
                      GetSQLValueString($_POST['OrdemServico'], "text"),
                      GetSQLValueString($_POST['DataInicio'], "text"),
                      GetSQLValueString($_POST['DataFim'], "date"),
                      GetSQLValueString($_POST['HorarioInicio'], "date"),
                      GetSQLValueString($_POST['HorarioFim'], "text"),
                      GetSQLValueString($_POST['LocalEvento'], "text"),
                      GetSQLValueString($_POST['DescricaoEvento'], "text"),
                      GetSQLValueString($_POST['Observacao'], "text"),
                      GetSQLValueString($_POST['Id'], "int"));

 mysql_select_db($database_conexao, $conexao);
 $Result1 = mysql_query($updateSQL, $conexao) or die(mysql_error());

 

 

 

 

 

Tenta colocar (STR_TO_DATE('$_POST['DataInicio']','%%d-%%m-%%Y'), "date")

 

 

 

ou:

 

$insertSQL = sprintf("INSERT INTO tbeventos (NomeEventos, OrdemServico, DataInicio, DataFim, HorarioInicio, HorarioFim, LocalEvento, DescricaoEvento, Observacao) VALUES (%s, %s, STR_TO_DATE(%s,'%%d-%%m-%%Y'), STR_TO_DATE(%s,'%%d-%%m-%%Y'), %s, %s, %s, %s, %s)",

GetSQLValueString($_POST['NomeEventos'], "text"),

GetSQLValueString($_POST['OrdemServico'], "text"),

GetSQLValueString('$_POST['DataInicio'], "date"),

GetSQLValueString('$_POST['DataFim'], "date"),

GetSQLValueString($_POST['HorarioInicio'], "text"),

GetSQLValueString($_POST['HorarioFim'], "text"),

GetSQLValueString($_POST['LocalEvento'], "text"),

GetSQLValueString($_POST['DescricaoEvento'], "text"),

GetSQLValueString($_POST['Observacao'], "text"));

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para trazer os dados do banco no formato 28-02-2012, você usa:

 

$querySQL = sprintf("SELECT DATE_FORMAT(DataInicio,'%%d-%%m-%%Y') DataInicio FROM tbeventos WHERE campox = %s ... ");

ou

$querySQL = "SELECT DATE_FORMAT(DataInicio,'%d-%m-%Y') DataInicio FROM tbeventos WHERE 1=1";

 

No UPDATE o processo é o mesmo:

 

$updateSQL = sprintf("UPDATE tbeventos SET NomeEventos=%s, OrdemServico=%s, DataInicio=STR_TO_DATE(%s,'%%d-%%m-%%Y'), DataFim=STR_TO_DATE(%s,'%%d-%%m-%%Y'), HorarioInicio=%s, HorarioFim=%s, LocalEvento=%s, DescricaoEvento=%s, Observacao=%s WHERE Id=%s", ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Brigado galera pela ajuda...

 

problema resolvido!

 

 

Aline brigadão pela Ajuda

deu tudo certinho aqui!!!

 

 

Para trazer os dados do banco no formato 28-02-2012, você usa:

 

$querySQL = sprintf("SELECT DATE_FORMAT(DataInicio,'%%d-%%m-%%Y') DataInicio FROM tbeventos WHERE campox = %s ... ");

ou

$querySQL = "SELECT DATE_FORMAT(DataInicio,'%d-%m-%Y') DataInicio FROM tbeventos WHERE 1=1";

 

No UPDATE o processo é o mesmo:

 

$updateSQL = sprintf("UPDATE tbeventos SET NomeEventos=%s, OrdemServico=%s, DataInicio=STR_TO_DATE(%s,'%%d-%%m-%%Y'), DataFim=STR_TO_DATE(%s,'%%d-%%m-%%Y'), HorarioInicio=%s, HorarioFim=%s, LocalEvento=%s, DescricaoEvento=%s, Observacao=%s WHERE Id=%s", ...

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.