Ir para conteúdo

POWERED BY:

Arquivado

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

Jorge Santos_69820

Formato de data com erro MySQL/PHP

Recommended Posts

Olá, estou tentando inserir a data em formato 22/03/2011 na "data de emissao", mas resultado no bd aparece 0000-00-00 ? qual mktime neste caso?

 

 

<html>
  <head>
 </head>
<DIV STYLE="margin-left:2%;">
<DIV STYLE="margin-right:2%;">
<BR><BR>
<fieldset>
<legend> Cadastro </legend>
<BR><BR>
<form name="outputform1" action="test.php"  method="post">
<tr>
<table>
<tr><td>Teste.:</td><td><input type="text" name="teste" size="15" value=""" ></td>
<td>Data Emissão:</td><td><input type="text"  id="data_emissao" name="data_emissao" size="10" value=""></td>
</tr>
<td><input type="button"  value="Adicione" onclick="insertRowPHP();CopyText();" /></td>
<td><input type="button"  value="Limpa" onclick="deleteAllRows('tblInsertRowPHP');" /></td>
<td><input type="submit"  value="Salvar" /> </td>
</p>
<th></th>
<table border="0" cellspacing="0" name="row" id="tblInsertRowPHP">
<thead>
   <tr>
 </r>
 </thead>
 <tbody></tbody>
</table>
</form>
</html>

<?

$link= mysql_connect('','','');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
@mysql_select_db('') or die( "Unable to select database");
if(is_array($_POST['teste']))   {
foreach($_POST['teste'] as $row=>$Act) {


   $teste = mysql_real_escape_string($Act);
   $data_emissao = mysql_real_escape_string ($_POST ['data_emissao'][$row]);


   $involv = "INSERT INTO teste (teste,data_emissao)
              VALUES('$teste','$data_emissao')";

mysql_query($involv) or die(mysql_error());
echo "<script>alert('adicionado com sucesso');location.href='teste.php';</script>";
}
}
mysql_close($link)
?>

<script type="text/javascript">
function insertRowPHP()
{
 var tbl = document.getElementById('tblInsertRowPHP');
 var iteration = tbl.tBodies[0].rows.length;
 newRow = tbl.tBodies[0].insertRow(+0);
 var newCell = newRow.insertCell(0);
 newCell.innerHTML = 'teste:';
 var newCell1 = newRow.insertCell(1);
 var el = document.createElement('input');
 el.type = 'text';
 el.name = 'teste[]';
 el.id = 'teste[]';
 el.size = 10;
 el.value = '';
 el.readOnly = 'readOnly';
 newCell1.appendChild(el);
 var newCell1 = newRow.insertCell(1);
 var el = document.createElement('input');
 el.type = 'text';
 el.name = 'data_emissao[]';
 el.id = 'data_emissao[]';
 el.size = 10;
 el.value = '';
 el.readOnly = 'readOnly';

}
function deleteAllRows(tblId)
{
 var tbl = document.getElementById(tblId);
 for (var i=tbl.tBodies[0].rows.length-1; i>=0; i--) {
   tbl.tBodies[0].deleteRow(i);
 }
}
</script>
<script LANGUAGE="JavaScript">
function CopyText()
{
document.getElementById('teste[]').value = document.outputform1.teste.value;
document.getElementById('data_emissao[]').value = document.outputform1.data_emissao.value;
}
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Jorge, uma coisa que eu te aconselho é salvar a data sempre no formato padrão 0000-00-00

e só na hora de exibir mostrar no formato 00-00-0000

 

Use um calendário javascript para inserir a data no input.

Exemplo: http://www.dhtmlgoodies.com/packages/dhtml-suite-for-applications/demos/demo-calendar-1.html

 

Não sei se te ajudou em alguma coisa, mas qualquer coisa é só responder.

 

 

Até mais

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Jorge, uma coisa que eu te aconselho é salvar a data sempre no formato padrão 0000-00-00

e só na hora de exibir mostrar no formato 00-00-0000

 

Use um calendário javascript para inserir a data no input.

Exemplo: http://www.dhtmlgoodies.com/packages/dhtml-suite-for-applications/demos/demo-calendar-1.html

 

Não sei se te ajudou em alguma coisa, mas qualquer coisa é só responder.

 

 

Até mais

Caro Vitor,

 

primeiramente obrigado pela sua ajuda.

 

com calendario a data responde de acordo. Para $_POST sem arrays consigo converter d/m/y com

com a seguinte conversao:

$date_emissao=date(substr($_POST['data_emissao'],6,4)."-".substr($_POST['data_emissao'],3,2)."-".substr($_POST['data_emissao'],0,2));

mas utilizando mysql_real_escape_string nao consigo converter. Se alquem descobrir, agradeço.

 

Jorge

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para inserir datas no padrão brasileiro no MySql eu uso:

DATE_FORMAT(NOW(),'%d/%m/%Y')

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o seu código HTML tá ajudando a atrapalhar o seu formulário;

Não entendi porque nos inputs texts você definiu que os valores vão ser enviados em branco!!

 

 

<tr><td>Teste.:</td><td><input type="text" name="teste" size="15" value=""" ></td>

<td>Data Emissão:</td><td><input type="text" id="data_emissao" name="data_emissao" size="10" value=""></td>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o seu código HTML tá ajudando a atrapalhar o seu formulário;

Não entendi porque nos inputs texts você definiu que os valores vão ser enviados em branco!!

 

 

 

Caro,

 

vou inserir os dados e postar (por isso os dados form load em branco).. a intecao é: postar a data como d/m/y e que cadastre o

mysql com o formado padrao y-m-d. procuro formula que faça este "date(substr").

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.