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