Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/12/2013, 10:28
e_daniel316
 
Fecha de Ingreso: marzo-2008
Mensajes: 94
Antigüedad: 16 años, 1 mes
Puntos: 0
Guardar fechas

Hola tengo un formulario donde tengo un text con formato de fecha,en la tabla de la bd mysql tengo un campo fecha con formato date. Al hacer submit ejecuta el proceso de guardar en la base de datos pero me guarda 0000-00-00.

este es el codigo ( el codigo php esta en el mismo archivo que el resto):

Código PHP:
<?php
$state 
false;
if (
$_POST['action'] == "add"){
$cnx mysql_connect("localhost""root""1234");
mysql_select_db("test"$cnx);

$fecha $_POST['fecha'];

    
$sql "INSERT INTO usuario ( fech) ";
    
$sql.= "VALUES ( '".$_POST['fecha']."') ";
    
$sql mysql_query($sql$cnx) or die(mysql_error());
    
$state true;
}
?>
<html>
<body>
<form name="form1" method="post">
<input type="text" id="fecha" size="10" maxlength="10"onkeyup="this.value=formateafecha(th is.value);"/><br />
<script type="text/javascript">
Calendar.setup({
inputField : "ingreso",
ifFormat : "%d-%m-%Y",
button : "lanzador",
});

function IsNumeric(valor)
{
var log=valor.length; var sw="S";
for (x=0; x<log; x++)
{ v1=valor.substr(x,1);
v2 = parseInt(v1);
//Compruebo si es un valor numérico
if (isNaN(v2)) { sw= "N";}
}
if (sw=="S") {return true;} else {return false; }
}
var primerslap=false;
var segundoslap=false;
function formateafecha(fecha)
{
var long = fecha.length;
var dia;
var mes;
var ano;
if ((long>=2) && (primerslap==false)) { dia=fecha.substr(0,2);
if ((IsNumeric(dia)==true) && (dia<=31) && (dia!="00")) { fecha=fecha.substr(0,2)+"/"+fecha.substr(3,7); primerslap=true; }
else { fecha=""; primerslap=false;}
}
else
{ dia=fecha.substr(0,1);
if (IsNumeric(dia)==false)
{fecha="";}
if ((long<=2) && (primerslap=true)) {fecha=fecha.substr(0,1); primerslap=false; }
}
if ((long>=5) && (segundoslap==false))
{ mes=fecha.substr(3,2);
if ((IsNumeric(mes)==true) &&(mes<=12) && (mes!="00")) { fecha=fecha.substr(0,5)+"/"+fecha.substr(6,4); segundoslap=true; }
else { fecha=fecha.substr(0,3);; segundoslap=false;}
}
else { if ((long<=5) && (segundoslap=true)) { fecha=fecha.substr(0,4); segundoslap=false; } }
if (long>=7)
{ ano=fecha.substr(6,4);
if (IsNumeric(ano)==false) { fecha=fecha.substr(0,6); }
else { if (long==10){ if ((ano==0) || (ano<1900) || (ano>2100)) { fecha=fecha.substr(0,6); } } }
}
if (long>=10)
{
fecha=fecha.substr(0,10);
dia=fecha.substr(0,2);
mes=fecha.substr(3,2);
ano=fecha.substr(6,4);
// Año no viciesto y es febrero y el dia es mayor a 28
if ( (ano%4 != 0) && (mes ==02) && (dia > 28) ) { fecha=fecha.substr(0,2)+"/"; }
}
return (fecha);
}

</script>
<input type="submit" id="submit" value="Ok"/>
<input type="hidden" name="action" value="add" />
</form>
</body>
</html>


que puede hacer para que me guarde los valores reales en vez de puros ceros?

gracias