Foros del Web » Programando para Internet » PHP »

Campo fecha formato??

Estas en el tema de Campo fecha formato?? en el foro de PHP en Foros del Web. Tengo este codigo, para actualizar un campo fecha "nacFun", me levanta otros datos relacionados al id pero cuando ingreso la fecha me resetea los campos ...
  #1 (permalink)  
Antiguo 15/01/2010, 17:58
 
Fecha de Ingreso: agosto-2008
Mensajes: 56
Antigüedad: 15 años, 8 meses
Puntos: 0
De acuerdo Campo fecha formato??

Tengo este codigo, para actualizar un campo fecha "nacFun", me levanta otros datos relacionados al id pero cuando ingreso la fecha me resetea los campos como que la hubiese enviado a la base.
Pero si voy a ver en el campo no hay nada solo el 0000-00-00 tiene algo que ver con el formato fecha para mysql???

Graciassssssssssssssssssssssssssssss


<?php
// --------------------------
// PROCESO MODIFICACION DE CLIENTES
// --------------------------

// Controlar y establecer conexión con servidor y base de datos
$Conex = mysql_connect("localhost","root","xxxxxxxxx");
if (!$Conex) {
die("ATENCION!!! No fue posible establecer conexión con el Servidor de Base de Datos:<br />".mysql_error());
} // endif
$bd = mysql_select_db("ejemplobd",$Conex);
if (!$bd) {
die("ATENCION!!! No fue posible seleccionar Base de Datos:<br />".mysql_error());
} // endif


// Capturar datos del formulario
$idFun = $_GET["IDC"];
$nacFun = $_POST["NAC"];

// Crear sentencia SQL
$sql = "UPDATE funcionarios SET nacFun = '$nacFun' WHERE idFun = $idFun";

// Ejecutar sentencia SQL
$res = mysql_query($sql,$Conex);

// Volver al formulario de Modificaciones
header("Location: FormModifCli.html");
?>
  #2 (permalink)  
Antiguo 15/01/2010, 18:21
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Campo fecha formato??

cual es el valor que contiene $nacFun..... y que tipo de campo es nacFun.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #3 (permalink)  
Antiguo 15/01/2010, 18:32
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Campo fecha formato??

Tal vez envíes los datos de forma DD/MM/AAAA y mysql tiene los datos de forma AAAA-MM-DD

Comprueba eso. De todas formas, te recomiendo escapar las variables:

Código PHP:
Ver original
  1. $sql = "UPDATE funcionarios SET nacFun = '".$nacFun."' WHERE idFun = ".$idFun;
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #4 (permalink)  
Antiguo 15/01/2010, 18:39
 
Fecha de Ingreso: enero-2010
Mensajes: 191
Antigüedad: 14 años, 3 meses
Puntos: 7
Respuesta: Campo fecha formato??

Primero es porque estás usando POST para capturar el dato y lo están enviando por GET o viceversa.

El campo nacFun es DATE y necesita ser espcificado de la siguiente forma YYYY-MM-DD Y=Año, M=Mes,D=Días.

Por lo tanto si tenes la típica fecha que usamos los que hablamos criollo, deberás hacer:
Código PHP:
if ( ! empty ($_POST['IDC']) and ! empty($_POST['NAC']) and preg_match('!([0-9]{1,2})[/-.]*([0-9]{1,2})[/-.]*([0-9]{4})!',$_POST['NAC'],$match)) {

// Crear sentencia SQL
$sql sprintf("UPDATE funcionarios SET nacFun = '%d-%02d-%02d' WHERE idFun = %u",$match[3],$match[2],$match[1],(int) $_POST['IDC']);

    
// Ejecutar sentencia SQL
    
$res mysql_query($sql,$Conex);



Última edición por abcdefghi; 15/01/2010 a las 19:46
  #5 (permalink)  
Antiguo 15/01/2010, 18:46
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Campo fecha formato??

Cita:
Iniciado por abcdefghi Ver Mensaje
Primero es porque estás usando POST para capturar el dato y lo están enviando por GET o viceversa.

El campo nacFun es DATE y necesita ser espcificado de la siguiente forma YYYY-MM-DD Y=Año, M=Mes,D=Días.

Por lo tanto si tenes la típica fecha que usamos los que hablamos criollo, deberás hacer:
Código PHP:
if ( ! empty ($_POST['IDC']) and ! empty($_POST['NAC']) and preg_match('!([0-9]{,2})[/-.]*([0-9]{,2})[/-.]*([0-9]{4})!',$_POST['NAC'],$match)) {

// Crear sentencia SQL
$sql sprintf("UPDATE funcionarios SET nacFun = '%d-%02d-%02d' WHERE idFun = %u",$match[3],$match[2],$match[1],(int) $_POST['IDC']);

    
// Ejecutar sentencia SQL
    
$res mysql_query($sql,$Conex);


Cómo te complicas para transformar la fecha amigo:

Código PHP:
Ver original
  1. $fecha=explode("/",$_POST['NAC']);
  2. $dia=$fecha[2];
  3. $mes=$fecha[1];
  4. $anio=$fecha[0];

Hasta separar la fecha y la hora y ordenarlo como quieras:

Código PHP:
Ver original
  1. $fechahora=explode(" ",$_POST['NAC']);
  2. $fecha=$fechahora[0];
  3. $hora=$fechahora[1];
  4.  
  5. $fecha=explode("/",$fecha);
  6. $dia=$fecha[2];
  7. $mes=$fecha[1];
  8. $anio=$fecha[0];
  9.  
  10. $hora=explode(":",$hora);
  11. $segundos=$hora[2];
  12. $minutos=$hora[1];
  13. $horas=$hora[0];

Saludos
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #6 (permalink)  
Antiguo 15/01/2010, 19:19
 
Fecha de Ingreso: enero-2010
Mensajes: 191
Antigüedad: 14 años, 3 meses
Puntos: 7
Respuesta: Campo fecha formato??

Particular mirada, en realidad es una cuestión de criterio, conocimiento y decisión personal, a mi criterio considero mejor 1 línea en vez de 13, más cuando tenés que hacer grandes script si no abrevias te termina quedando un masacote.

Tené en cuenta que como lo haces no es lo mismo que:

Código PHP:
if ( ! empty ($_POST['IDC']) and ! empty($_POST['NAC']) and preg_match('!([0-9]{1,2})[/-.]*([0-9]{1,2})[/-.]*([0-9]{4})!',$_POST['NAC'],$match)) {} 
Esa línea comprueba que las variables existan para que no devuelva un e_warning, a su vez no agrega campos vacios o incorrectos a la db, comprueba el formato de la fecha que puede ser: el nuestro 12/12/2000, alemán 12.12.2000, el haragán 12122000, el veloz 12-12-2000 y el epiléptico 12-12/2000 a su vez acepta valores sin ceros delante en caso que se pueda por ejemplo 2/2/2000, 02-2-2000, etc y si no es lo rechaza.

Última edición por abcdefghi; 15/01/2010 a las 19:46
  #7 (permalink)  
Antiguo 16/01/2010, 05:42
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Campo fecha formato??

Esa fue buena.
Gracias amigo!
Mi código puede resumirse en menos líneas si no asignas cada índice de array a una variable. Pero así el usuario lo entiende mejor.
Pd: a mi nunca me dio errores

Saludos!
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #8 (permalink)  
Antiguo 16/01/2010, 06:11
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Campo fecha formato??

bueno insisto...... si el usuariono responde ps es todo en vano........ todo depende de como estes creando el formato de fecha.... lo cual ya te dieron varias soluciones y lo mas importante el saber que tipo de campo tienes en la bd.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog

Etiquetas: formato, fechas, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:31.