Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Insertar fecha desde php

Estas en el tema de Insertar fecha desde php en el foro de Mysql en Foros del Web. Hola, tengo una duda. Quiero realizar un insert desde php, en este insert contiene un campo fecha que en mi phpmyadmin es de tipo date. ...
  #1 (permalink)  
Antiguo 08/05/2012, 09:52
 
Fecha de Ingreso: junio-2011
Mensajes: 68
Antigüedad: 12 años, 10 meses
Puntos: 4
Insertar fecha desde php

Hola, tengo una duda.
Quiero realizar un insert desde php, en este insert contiene un campo fecha que en mi phpmyadmin es de tipo date.
Para crear la variable fecha realizo lo siguiente:

Código:
$_date			 	= $_POST['_yyyy'].$_POST['_dd'].$_POST['_mm'];
$_fecha_nacimiento	= date("Y-m-d",$_date);
Pero me inserta una fecha que no tiene nada que ver con la que coge del campo $_POST['_yyyy']... el año siempre me inserta el 1970 y los demás valores los coge de forma alternativa creo, ya que tampoco son los que yo inserto en dichos campos.

Si alguien tiene idea del motivo del error me gustaria que me lo dijese.
Ya probé a mostrar la variable $_date, y a insertar los $_POST directamente en $_fecha_nacimiento = date(...).
  #2 (permalink)  
Antiguo 08/05/2012, 10:12
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, 5 meses
Puntos: 2658
Respuesta: Insertar fecha desde php

Por qué no empiezas haciendo un
Código PHP:
Ver original
  1. echo $_fecha_nacimiento;
y veamos qué es lo que está quedando en la variable.

Además, eso es lo que pasa en PHP (tema que es off-topic acá), pero lo que realmente nos interesa es cómo pones ese valor contenido en la variable en la sentencia SQL.
¿Podrías postearla?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 08/05/2012, 10:19
 
Fecha de Ingreso: junio-2011
Mensajes: 68
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: Insertar fecha desde php

Cuando realizo el "echo $_fecha_nacimiento" me muestra bien el contenido. Al realizar la inserccion hago esto.

Código:
$_insert= "insert into TEMP_ARTISTA values ('". $_ID_artista ."','". $_ID_tipo_usuario ."','". $_nick ."','". $_contrasena_1 ."','". $_email_1 ."','". $_pais ."','". $_ciudad ."','". $_fecha_nacimiento ."','". $_clave ."')";
  #4 (permalink)  
Antiguo 08/05/2012, 11:02
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, 5 meses
Puntos: 2658
Respuesta: Insertar fecha desde php

Primero, el que digas "me muestra bien el contenido" en realidad no nos indica nada. Necesitamos ver nosotroslo que te sale para saber si es correcto desde el punto de vista de MySQL.

Postea ese echo.

Por otro lado, si la variable contiene un Date, como parece, la salida de esto puede estar afectado por la regionalización de la página:
insert into TEMP_ARTISTA
values (
'". $_ID_artista ."',
'". $_ID_tipo_usuario ."',
'". $_nick ."',
'". $_contrasena_1 ."',
'". $_email_1 ."',
'". $_pais ."',
'". $_ciudad ."',
'". $_fecha_nacimiento ."',
'". $_clave ."')

Postea, por favor, lo que contiene la variable $_insert antes de enviarla a ejecutarse.
__________________
¿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 08/05/2012, 11:39
 
Fecha de Ingreso: junio-2011
Mensajes: 68
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: Insertar fecha desde php

La fecha que inserto es el 20 09 1990.
Al hacer los echo me muestra lo siguiente.
$_fecha_nacimiento = 1970-08-19
$_date = 19900920
$_insert = insert into TEMP_ARTISTA values ('0','2','User','password','Email_1','Pais','','19 70-08-19','822S6C6sMnbh9i3H5328W')
  #6 (permalink)  
Antiguo 08/05/2012, 13:13
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, 5 meses
Puntos: 2658
Respuesta: Insertar fecha desde php

Tema OFF-TOPIC: Esto es un problema de manejo de PHP.

La respuesta en realidad, es bastante simple. Lo que estás cargando en la variable $_date, no es una fecha. Es una cadena cualquiera que dice
Código PHP:
Ver original
  1. $_date = 19900920
En todo caso es un numero o una cadena que contiene la fecha. Te has olvidado de todos los separadores "-".
Con eso, el sistema ni siquiera te puede lo convertir a un formato DATE, porque no reconoce la estructura.
__________________
¿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 08/05/2012, 13:46
 
Fecha de Ingreso: junio-2011
Mensajes: 68
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: Insertar fecha desde php

He añadido los separadores, para especificar e puesto

$_date = $_POST['_yyyy'].'-'.$_POST['_mm'].'-'.$_POST['_dd'];

y me devuelve: 1990-09-20

Siento ser tan torpe pero digamos que la falta de paciencia y tantas pruebas como e exo... me pueden
  #8 (permalink)  
Antiguo 08/05/2012, 14:34
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, 5 meses
Puntos: 2658
Respuesta: Insertar fecha desde php

No problem.
Cuando ya has estado muchas horas probando cosas, el problema puede ser tan evidente como un elefante en el restaurante, y no lo verías.
Nos pasa a todos.

__________________
¿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/05/2012, 15:56
 
Fecha de Ingreso: junio-2011
Mensajes: 68
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: Insertar fecha desde php

yah, al igualar $_fecha_nacimiento = date("Y-m-d",$_date)..... sigue cogiendo la fecha que le da la gana... estoy por hacer el campo fecha de tipo varchar y pasar del tema....
  #10 (permalink)  
Antiguo 08/05/2012, 18:01
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, 5 meses
Puntos: 2658
Respuesta: Insertar fecha desde php

Cita:
Iniciado por TheCastor Ver Mensaje
yah, al igualar $_fecha_nacimiento = date("Y-m-d",$_date)..... sigue cogiendo la fecha que le da la gana... estoy por hacer el campo fecha de tipo varchar y pasar del tema....
Ni se te ocurra... Usar varchar es la mayor y peor bobada que puedes hacer. Vuelve al principio y muesttanos el echo de las dos variables. Programar no es cosa de impacientes.
__________________
¿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 09/05/2012, 05:17
 
Fecha de Ingreso: junio-2011
Mensajes: 68
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: Insertar fecha desde php

Jejeje gracias por la motivacion y la ayuda GNZSOLOYO, pero si lo paso a varchar es porque la app con la que estoy trabajando es para un proyecto de ciclo, y en 1 mes tengo que tenerla finalizada, estoy aprendiendo php conforme hago la aplicacion. Cuando la termine me pondré a comprobar el tema de las fechas, etc...etc.
  #12 (permalink)  
Antiguo 09/05/2012, 06:07
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, 5 meses
Puntos: 2658
Respuesta: Insertar fecha desde php

Cita:
Iniciado por TheCastor Ver Mensaje
Jejeje gracias por la motivacion y la ayuda GNZSOLOYO, pero si lo paso a varchar es porque la app con la que estoy trabajando es para un proyecto de ciclo, y en 1 mes tengo que tenerla finalizada, estoy aprendiendo php conforme hago la aplicacion. Cuando la termine me pondré a comprobar el tema de las fechas, etc...etc.
El parche que estás por hacer te traerá enormes problemas con las consultas con fechas, ordenamientos, agrupaciones y una baja performance general. Estas al borde de resolverlo. ¿Por qué te detienes?
Postea lo que dije. Lo que queda por hacer es poco.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 09/05/2012 a las 06:41
  #13 (permalink)  
Antiguo 09/05/2012, 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, 5 meses
Puntos: 2658
Respuesta: Insertar fecha desde php

Cita:
Iniciado por TheCastor Ver Mensaje
yah, al igualar $_fecha_nacimiento = date("Y-m-d",$_date)..... sigue cogiendo la fecha que le da la gana... estoy por hacer el campo fecha de tipo varchar y pasar del tema....
Mira, me voy a adelantar y aclararte que en este código estás haciendo cualquier cosa.
Si ya tienes el valor correcto en $_date, ¿Para qué le aplicas la función date()? Ni siquiera la usas correctamente porque los parámetros están mal. Busca en el manual on line de PHP las funciones de conversión de fechas.
Y en la consulta usa lo que pusiste en $_date.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 09/05/2012 a las 13:11
  #14 (permalink)  
Antiguo 09/05/2012, 12:52
 
Fecha de Ingreso: junio-2011
Mensajes: 68
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: Insertar fecha desde php

Muchas gracias tio, ya se mas o menos como funciona lo de date('Y-m-d')... a eso le daré muxo mas curro en cuanto termine el proyecto.

Etiquetas: date, fecha, insert, php, sql
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 22:09.