Comunidad de diseño web y desarrollo en internet online

error al grabar fecha en php

Citar            
MensajeEscrito el 05 Jun 2015 07:13 pm
hola tengo la siguiente codificación pero no se guarda la fecha, se guarda como 0000-00-00 , los datos se cargan en un formulario

Código :

<html>
   <head>
           <title>Formulario de registro</title>
   </head>
   <body>
       
          <br /><br />
        <h2>Sus datos son:</h2>
    <?php                  
            echo'<br/>';
            if (isset($_POST['nombre']))
            {
               $nombre= $_POST['nombre'];
               echo "$nombre";
            }      
            echo'<br/>';   
            if (isset($_POST['apellido']))
            {
               $apellido = $_POST['apellido'];
               echo "$apellido";
            }
            echo'<br/>';           
            if (isset($_POST['dni']))
            {
               $dni = $_POST['dni'];
                echo "$dni";
            }              
            echo'<br/>';           
            if (isset($_POST['email']))
            {
                    $email = $_POST['email'];
                    echo "email";  
            } 
            echo'<br/>';
            if (isset($_POST['sexo']))
            {
               $sexo = $_POST['sexo'];
               echo "$sexo";
            }
            echo'<br/>';
          if (isset($_POST['dia']))
            {
               $dia = $_POST['dia'];
               echo "$dia";
            }
            echo'<br/>';
            if (isset($_POST['mes']))
            {
               $mes = $_POST['mes'];
               echo "$mes";
            }
            echo'<br/>';
            if (isset($_POST['anio']))
            {
               $anio = $_POST['anio'];
               echo "$anio";
            }                

    $host = "andoporto-prog-web2-tp6-1571745";
    $user = "andoporto";
    $pass = "";
    $db = "base";
   
    $nombre=$_POST['nombre'];
    $apellido=$_POST['apellido'];
    $dni=$_POST['dni'];
      $email=$_POST['email'];
    $sexo=$_POST['sexo'];
    $dia=$_POST['dia'];
    $mes=$_POST['mes'];
    $anio=$_POST['anio'];
    $fecha=strtotime($dia.$mes.$anio);
  
    $enlace = conectarBaseDeDatos($host,$user,$pass,$db);
   
    if($enlace)
            echo "<br> Conectado exitosamente";
           
    echo '<br><br>';       
   
    //$cadena = "INSERT INTO cliente2 ('nombre','apellido','dni','email','sexo') VALUES ('$nombre','$apellido',$dni,'$email',$sexo)";
     //$cadena = "INSERT INTO cliente2 (nombre,apellido,dni,sexo) VALUES ($nombre,$apellido,$dni,$sexo)";
      $cadena = "INSERT INTO cliente2 (nombre,apellido,email,dni,sexo,fechadenacimiento) VALUES ('$nombre','$apellido','$email','$dni','$sexo','$fecha')"; 
   $consulta = mysql_query($cadena,$enlace); 
   $registros=mysql_affected_rows();  
   //echo mysql_error($enlace); 
   echo mysql_errno($enlace) . ": " . mysql_error($enlace). "\n";    
            if($registros == 1)
            {
            echo "<br> Registros dados de alta";
         }                    
            else
            {
            echo "no se pudo dar de alta"; 
         }
    echo '<br><br>';       

   
     
    function conectarBaseDeDatos($host,$user,$pass,$db)
    {
            $link=mysql_connect($host,$user,$pass) or die("Error al conectarse al servidor");
            mysql_select_db($db) or die("Error al conectarse la base de datos");
           
            return $link;
    }      
                      
?>


Por andoporto

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 08 Jun 2015 01:53 pm
¿Cómo te aseguras que del clientes realmente viene un día, una hora y un año válido?. Me temo que no lo haces.

Por otro lado strtotime() no devuelve lo que crees que devuelve. Lo que deberías hacer es con los tres datos formar una fecha en formato ISO que es como la está aceptando el campo de la DB.

Si tratas de almacenar un dato que no está en el formato correcto (DATE en este caso) y además no es un dato válido, en el campo irá a parar el valor que por omisión esté configurado en la DB.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.