Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] guardar datos de tipo fecha en mysql

Estas en el tema de guardar datos de tipo fecha en mysql en el foro de PHP en Foros del Web. hola a todos soy nuevo por este foro por favor me pueden ayudar con este tema como guardo datos de tipo fecha en mi BD ...
  #1 (permalink)  
Antiguo 07/04/2015, 09:04
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
guardar datos de tipo fecha en mysql

hola a todos soy nuevo por este foro por favor me pueden ayudar con este tema como guardo datos de tipo fecha en mi BD desde mi formulario así es como recupero los datos de mi form con un post simple.

Código PHP:
$data_seg = array('cliente' => $_POST['cliente'],
                    
'unidad_de_negocio' => $_POST['unidad_de_negocio'],
                    
'programa_servicio' => $_POST['programa_servicio'],
                    
'responsable_comercial' => $_POST['responsable_comercial'],
                    
'fecha_reque' => $_POST['fecha_reque'],
                    
'fecha_conc' => $_POST['fecha_conc'],
                    
'fecha_proxc' => $_POST['fecha_proxc'],
                    
'actividad_comercial' => $_POST['actividad_comercial'],
                    
'estatus_comercial' => $_POST['estatus_comercial'],
                    
'nombre_propuesta' => $_POST['nombre_propuesta'],
                    
'codigo_cap' => $_POST['codigo_cap'],
                    
'tipo_moneda' => $_POST['tipo_moneda'],
                    
'valor_venta' => $_POST['valor_venta'],
                    
'consultor' => $_POST['consultor'],
                    
'observaciones' => $_POST['observaciones']);
registrar($data_seg); 
y asi es como lo inserto en mi bd
Código PHP:
function registrar($data_seg){

    
$link getConexion();
    
$cliente mysql_real_escape_string($data_seg['cliente']);
    
$unidad_de_negocio mysql_real_escape_string($data_seg['unidad_de_negocio']);
    
$programa_servicio mysql_real_escape_string($data_seg['programa_servicio']);
    
$responsable_comercial mysql_real_escape_string($data_seg['responsable_comercial']);
    
$fecha_reque mysql_real_escape_string($data_seg['fecha_reque']);
    
$fecha_conc mysql_real_escape_string($data_seg['fecha_conc']);
    
$fecha_proxc mysql_real_escape_string($data_seg['fecha_proxc']);
    
$actividad_comercial mysql_real_escape_string($data_seg['actividad_comercial']);
    
$estatus_comercial mysql_real_escape_string($data_seg['estatus_comercial']);
    
$nombre_propuesta mysql_real_escape_string($data_seg['nombre_propuesta']);
    
$codigo_cap mysql_real_escape_string($data_seg['codigo_cap']);
    
$tipo_moneda mysql_real_escape_string($data_seg['tipo_moneda']);
    
$valor_venta mysql_real_escape_string($data_seg['valor_venta']);
    
$consultor mysql_real_escape_string($data_seg['consultor']);
    
$observaciones mysql_real_escape_string($data_seg['observaciones']);
    
$query "INSERT INTO seg_comercial(seg_cliente,seg_unid_negocio,seg_programa_servicio,seg_rp_comercial,seg_fecha_requerimiento,
                            seg_fecha_ultimo_contac,seg_fecha_proximo_contac,seg_actividad,seg_status,seg_nom_propuesta,seg_cod_cap,
                            seg_fr_moneda,seg_valor_venta,seg_consultor,seg_observaciones)
               VALUES('$cliente','$unidad_de_negocio','$programa_servicio','$responsable_comercial','$fecha_reque',
                '$fecha_conc',NOW(),'$actividad_comercial','$estatus_comercial','$nombre_propuesta','$codigo_cap','$tipo_moneda',$valor_venta,'$consultor','$observaciones')"
;
    @
mysql_query($query$link)
        or die(
mysql_error());

    return 
mysql_insert_id($link);

por favor ayúdenme
  #2 (permalink)  
Antiguo 07/04/2015, 09:16
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: guardar datos de tipo fecha en mysql

Para guardarlas tienen que cumplir con el formato que MySQL espera para fechas, te remito al manual de MySQL:
https://dev.mysql.com/doc/refman/5.5...-literals.html
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 07/04/2015, 09:22
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
Respuesta: guardar datos de tipo fecha en mysql

si lo he intentado pero aun asi no lo guarda ojo mi campo en mi BD es de tipo date dentro de lo que mencione anteriormente el campo que quiero guardar es 'fecha_proxc' => $_POST['fecha_proxc'] y lo estoy guardando como now en el query
  #4 (permalink)  
Antiguo 07/04/2015, 09:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: guardar datos de tipo fecha en mysql

Lo que te están explicando es que la fecha debe ser enviada a la query como "AAAA-MM-DD", de lo contrario MySQL no la interpretará como fecha válida.
Eso es lo que debes corregir de lo que estés recibiendo por $_POST.
Fijate qué formatol llega, y procede en consecuencia.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 07/04/2015, 11:40
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
Respuesta: guardar datos de tipo fecha en mysql

Gracias por su tiempo y compresión lo que realize fue crear una funcion
Código PHP:
function formatear_fecha($fecha_vieja)
{
    
$fecha_vieja=explode("/"$fecha_vieja);
    
$fecha_nueva=$fecha_vieja[2]."-".$fecha_vieja[1]."-".$fecha_vieja[0];
    return 
$fecha_nueva;

a ver si alguien tiene el mismo problema que yo puede usar esa funcion
  #6 (permalink)  
Antiguo 07/04/2015, 12:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: guardar datos de tipo fecha en mysql

¡Que ganas de complicarte la vida!....

Hay funciones específicas en PHP para manejar fechas y formatearlas, y además también se peude formatear la entrada desde la base de datos con funciones de MySQL.

No reinventes el agujero del mate. Usa lo que existe, lo cual opuedes ver clarametnte si lees el manual de referencia.

AL menos podrías habernos mostrado cómo está formateada la fecha que recibe tu script. Con eso podríamos haberte sugerido soluciones menos complicadas...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 07/04/2015, 13:09
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
Respuesta: guardar datos de tipo fecha en mysql

Cita:
Iniciado por gnzsoloyo Ver Mensaje
¡Que ganas de complicarte la vida!....

Hay funciones específicas en PHP para manejar fechas y formatearlas, y además también se peude formatear la entrada desde la base de datos con funciones de MySQL.

No reinventes el agujero del mate. Usa lo que existe, lo cual opuedes ver clarametnte si lees el manual de referencia.

AL menos podrías habernos mostrado cómo está formateada la fecha que recibe tu script. Con eso podríamos haberte sugerido soluciones menos complicadas...
creeme que lo intente pero no lo realizaba ya que lo mando deste un datapicker
asi lo formateo

$fecha_conc=formatear_fecha($_POST['fecha_conc']);
$fecha_reque=formatear_fecha($_POST['fecha_reque']);
$fecha_proxc=formatear_fecha($_POST['fecha_proxc']);
  #8 (permalink)  
Antiguo 07/04/2015, 13:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: guardar datos de tipo fecha en mysql

¿Podrías hacernos el favor de postear lo que el script recibe antes de formatearlo?
un simple
Código PHP:
Ver original
  1. var_dump($_POST);
alcanzará para poder hacerte sugerencias...

Si no vemos lo que tienes es dificil darte consejos claros.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 08/04/2015, 07:38
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
Respuesta: guardar datos de tipo fecha en mysql

si vez mi primer post hai colo como recibe el script este arreglo es donde se recibe del form
Código PHP:
$data_seg = array('cliente' => $_POST['cliente'], 
                    
'unidad_de_negocio' => $_POST['unidad_de_negocio'], 
                    
'programa_servicio' => $_POST['programa_servicio'], 
                    
'responsable_comercial' => $_POST['responsable_comercial'], 
                    
'fecha_reque' => $_POST['fecha_reque'], 
                    
'fecha_conc' => $_POST['fecha_conc'], 
                    
'fecha_proxc' => $_POST['fecha_proxc'], 
                    
'actividad_comercial' => $_POST['actividad_comercial'], 
                    
'estatus_comercial' => $_POST['estatus_comercial'], 
                    
'nombre_propuesta' => $_POST['nombre_propuesta'], 
                    
'codigo_cap' => $_POST['codigo_cap'], 
                    
'tipo_moneda' => $_POST['tipo_moneda'], 
                    
'valor_venta' => $_POST['valor_venta'], 
                    
'consultor' => $_POST['consultor'], 
                    
'observaciones' => $_POST['observaciones']); 
registrar($data_seg); 
  #10 (permalink)  
Antiguo 08/04/2015, 07:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: guardar datos de tipo fecha en mysql

Eso ya lo vi, pero eso no responde mi pedido.
No me interesa ver cómo procesas el $_POST, lo quye quiero ver es cómo es el formato que la fecha llega en ese $_POST.
El resto es irrelevante.

Contesta lo que te pido, cosa que puedes lograr como te dije:
Código PHP:
Ver original
  1. var_dump($_POST);
¿Te resulta muy difícil, o simplemente no te interesa que veamos el tema?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 08/04/2015, 07:58
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
Respuesta: guardar datos de tipo fecha en mysql

haber es así por ejemplo 08/04/2015 es un data piker que hay en el formulario, no se si eso responde a tu pregunta. por otro lado si no me interesa ver el tema no hubiese puesto mi solución porque estoy seguro que hay muchas personas como yo que alguna vez han pasado por la misma situación.
  #12 (permalink)  
Antiguo 08/04/2015, 08:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: guardar datos de tipo fecha en mysql

Cita:
Iniciado por BlackJccl1 Ver Mensaje
haber es así por ejemplo 08/04/2015 es un data piker que hay en el formulario, no se si eso responde a tu pregunta. por otro lado si no me interesa ver el tema no hubiese puesto mi solución porque estoy seguro que hay muchas personas como yo que alguna vez han pasado por la misma situación.
No, ese ejemplo no responde mi pregunta, que es simplemente que ejecutes esto:
Código PHP:
var_dump($_POST); 
lo que no veo tan complejo.
Lo que quisiera ver es el escenario real, no una descripción o una simiulación aproximada.
En este rubro nada se "ejemplifica", sino que se prueba. Y la prueba yo no la veo. De alli mi insistencia.

Respecto a las muchas otras personas que han buscado solución al mismo problema, te comento que la mayoría de las veces la solución se hace aplicando funciones propias de PHP o de MySQL, que ya existen, evitando complicar innecesariamente las cosas. No hay nada nuevo bajo el sol, cosas como estas se resolvieron hace mucho, pero para mostrarte cómo necesitaríamos asegurarnos de lo que realmente estás recibiendo.
Como dije: No trabajamos con suposiciones.
¿Es muy complicado apra ti insertar ese var_dump() y ejecutr una prueba una sola vez mas?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #13 (permalink)  
Antiguo 09/04/2015, 06:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: guardar datos de tipo fecha en mysql

Para darte un ejemplo de limpieza de funciones de PHP, te comento que si hubieses usado esto:
Código PHP:
$date = new DateTime('10/23/2015');
echo 
$date->format('Y-m-d H:i:s'); 
obtendrías esto, por ejemplo:
Cita:
2015-10-23
Con lo que tu codigo quedaría:
Código PHP:
$data_seg = array('cliente' => $_POST['cliente'],
                    
'unidad_de_negocio' => $_POST['unidad_de_negocio'],
                    
'programa_servicio' => $_POST['programa_servicio'],
                    
'responsable_comercial' => $_POST['responsable_comercial'],
                    
// ------------------------------------
                    
'fecha_reque' => new DateTime($_POST['fecha_reque']),
                    
'fecha_conc' => new DateTime($_POST['fecha_conc']),
                    
'fecha_proxc' =>new DateTime$_POST['fecha_proxc']),
                    
// ------------------------------------
                    
'actividad_comercial' => $_POST['actividad_comercial'],
                    
'estatus_comercial' => $_POST['estatus_comercial'],
                    
'nombre_propuesta' => $_POST['nombre_propuesta'],
                    
'codigo_cap' => $_POST['codigo_cap'],
                    
'tipo_moneda' => $_POST['tipo_moneda'],
                    
'valor_venta' => $_POST['valor_venta'],
                    
'consultor' => $_POST['consultor'],
                    
'observaciones' => $_POST['observaciones']);
registrar($data_seg); 
Habria que probar...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #14 (permalink)  
Antiguo 30/04/2015, 10:43
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
Respuesta: guardar datos de tipo fecha en mysql

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Para darte un ejemplo de limpieza de funciones de PHP, te comento que si hubieses usado esto:
Código PHP:
$date = new DateTime('10/23/2015');
echo 
$date->format('Y-m-d H:i:s'); 
obtendrías esto, por ejemplo:

Con lo que tu codigo quedaría:
Código PHP:
$data_seg = array('cliente' => $_POST['cliente'],
                    
'unidad_de_negocio' => $_POST['unidad_de_negocio'],
                    
'programa_servicio' => $_POST['programa_servicio'],
                    
'responsable_comercial' => $_POST['responsable_comercial'],
                    
// ------------------------------------
                    
'fecha_reque' => new DateTime($_POST['fecha_reque']),
                    
'fecha_conc' => new DateTime($_POST['fecha_conc']),
                    
'fecha_proxc' =>new DateTime$_POST['fecha_proxc']),
                    
// ------------------------------------
                    
'actividad_comercial' => $_POST['actividad_comercial'],
                    
'estatus_comercial' => $_POST['estatus_comercial'],
                    
'nombre_propuesta' => $_POST['nombre_propuesta'],
                    
'codigo_cap' => $_POST['codigo_cap'],
                    
'tipo_moneda' => $_POST['tipo_moneda'],
                    
'valor_venta' => $_POST['valor_venta'],
                    
'consultor' => $_POST['consultor'],
                    
'observaciones' => $_POST['observaciones']);
registrar($data_seg); 
Habria que probar...
Hola y Gracias por responder pero en ese momento necesitaba algo rápido y fue lo único que encontré ahora voy ha probar pero recuerdo que lei sobre esa funcion de php pero no me quedo un poco claro bueno en fin estoy probando haber
  #15 (permalink)  
Antiguo 30/04/2015, 11:55
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
Respuesta: guardar datos de tipo fecha en mysql

Lo probe y me sale este error
catchable fatal error object of class datetime could not be converted to string
es porque lo que estoy mandando e un string
  #16 (permalink)  
Antiguo 30/04/2015, 12:26
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: guardar datos de tipo fecha en mysql

Postea el código... No somos adivinos.
Si no vemos lo que pones, es imposible saber por dónde falla.

Por lo pronto, es evidente que no lo estás haciendo siguiendo el manual.

Muestra ómo lo haces, y por favor, postea todo el código relevante.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #17 (permalink)  
Antiguo 30/04/2015, 13:38
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
Respuesta: guardar datos de tipo fecha en mysql

lo estoy haciendo así
Código PHP:
Ver original
  1. 'fecha_reque' => new DateTime($_POST['fecha_reque']),
  2.  
  3. // cuando envio la informacion a mi bd es asi
  4.  
  5. $fecha_reque = $data_seg['fecha_reque'];

vi el manual pero veo que es una clase pero no se que si crear una función basándome en que sea un string disculpa si lo hago mal o no le entiendo y Gracias por darte el tiempo de ayudar

Etiquetas: fecha, formulario, mysql, sql, tipo
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 23:06.