Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Guardar mes y año en MYSQL con php

Estas en el tema de Guardar mes y año en MYSQL con php en el foro de PHP en Foros del Web. Hola a todos como estan veran tengo en mi base de datos un campo de tipo DATE asi @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original `seg_pap_programa_fecha` ...
  #1 (permalink)  
Antiguo 22/03/2016, 10:00
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años, 7 meses
Puntos: 2
Guardar mes y año en MYSQL con php

Hola a todos como estan veran tengo en mi base de datos un campo de tipo DATE asi
Código PHP:
Ver original
  1. `seg_pap_programa_fecha` DATE NULL DEFAULT NULL
pues desde php envio estos datos asi
Código PHP:
Ver original
  1. ["nsp_periodo_programa"]=>
  2.     string(7) "12-2016"
y pues al insertarlos los transformo de la siguiente manera
Código PHP:
Ver original
  1. $query_registrar->bindParam(3,date("Y-m-d",strtotime($nsp_data["nsp_periodo_programa"])),PDO::PARAM_STR);
pero como pueden fijarse solo envio el mes y el año lo normal es envia con el dia pero por reglas de negocio solo requieren mes y año valga la redundancia,por ello es que no se como guardar esos datos ya que cuando hago las pruebas solo me guardar
0000-00-00
pues es logico ya que solo el envio solo dos datos y el campor requiere tres ayuda por favorr
  #2 (permalink)  
Antiguo 22/03/2016, 10:02
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 5 meses
Puntos: 263
Respuesta: Guardar mes y año en MYSQL con php

y si pruebas cambiando el formato asi:

Código PHP:
Ver original
  1. $query_registrar->bindParam(3,date("Y-m",strtotime($nsp_data["nsp_periodo_programa"])),PDO::PARAM_STR);

ya que en el formato le estas indicando tambien el día
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 22/03/2016, 10:29
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años, 7 meses
Puntos: 2
Respuesta: Guardar mes y año en MYSQL con php

si pero cuando intento eso me muestra un error de mysql
Código MySQL:
Ver original
  1. SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '03-2016,'6300'),(206,16,,08-2016,'3600'),(206,21,,11-2016,'2300')' at line 1NULL
pues requiere tres datos
  #4 (permalink)  
Antiguo 22/03/2016, 10:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Guardar mes y año en MYSQL con php

Las fechas van entre comillas, así que parece que no estás preparando los datos adecuadamente.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 22/03/2016, 11:06
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años, 7 meses
Puntos: 2
Respuesta: Guardar mes y año en MYSQL con php

No entiendo a que te refieres con ello
  #6 (permalink)  
Antiguo 22/03/2016, 11: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: 17 años
Puntos: 2658
Respuesta: Guardar mes y año en MYSQL con php

Además de eso, el error básico es que un DATE o DATETIME e MySQL esperan recibir la fecha en un formato AAAA-MM-DD, y no DD-MM-AAAA o MM-AAAA.
Lo que te conviene es, auqnue solo requieras el mes y el año, poner el dia como 01ª, ya que no puedes poner una fecha con un dia "oo". Ese tipo de fechas no existen, y no están contempladas en la definición de ese tipo de columnas.
Luego simplemente consultas por el mes y el año de la fecha almacenada. Para eso el SQL tiene funciones que extraen el valor (MONTH(), YEAR(), DAY())
__________________
¿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 22/03/2016, 11:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Guardar mes y año en MYSQL con php

Cita:
Iniciado por BlackJccl1 Ver Mensaje
No entiendo a que te refieres con ello
Se refiere a que esto está doblemente MAL:
Código MySQL:
Ver original
  1. (206,16,,08-2016,'3600')
Primero, la fecha debe ser puesta entre apostrofos, y segundo el tercer dato no puede estar vacío, se produciría un error de ejecución. SI quieres que sea NULO, debes poner NULL.
Asi:
Código SQL:
Ver original
  1. (206, 16, NULL, '2016-08-01', 3600)
Y tercero, los números NO VAN entre apostrofos. Eso esconde errores.
¿Se entiende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 22/03/2016, 11:10
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años, 7 meses
Puntos: 2
Respuesta: Guardar mes y año en MYSQL con php

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Además de eso, el error básico es que un DATE o DATETIME e MySQL esperan recibir la fecha en un formato AAAA-MM-DD, y no DD-MM-AAAA o MM-AAAA.
Lo que te conviene es, auqnue solo requieras el mes y el año, poner el dia como 01ª, ya que no puedes poner una fecha con un dia "oo". Ese tipo de fechas no existen, y no están contempladas en la definición de ese tipo de columnas.
Luego simplemente consultas por el mes y el año de la fecha almacenada. Para eso el SQL tiene funciones que extraen el valor (MONTH(), YEAR(), DAY())
Pues tienes toda la razon por fin una ayuda mas clara pues como pongo ese dia 01 lo malo es que desde mi formulario me envian solo año y mes
  #9 (permalink)  
Antiguo 22/03/2016, 11:19
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 11 meses
Puntos: 39
Respuesta: Guardar mes y año en MYSQL con php

A ver tampoco es que a estas alturas no sepamos concatenar variables

Código PHP:
Ver original
  1. $nsp_data = "05-2016";
  2. $nuevaFecha = "01-".$nsp_data;

Y el strtotime lo haces con $nuevaFecha y listo. ¿O quieres una "ayuda más clara"?
  #10 (permalink)  
Antiguo 22/03/2016, 11:26
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años, 7 meses
Puntos: 2
Respuesta: Guardar mes y año en MYSQL con php

Pues tienes razon en eso pense tambien pero el tema que lo envio en un arreglo algo asi
Código PHP:
Ver original
  1. $nsp_data_pv[]=array('nsp_programa' =>$_POST['nsp_programa_1'],'nsp_campana_programa' =>$_POST['nsp_campana_programa_1'],'nsp_periodo_programa' =>$_POST['nsp_periodo_programa_1'],'nsp_valor_venta' =>$_POST['nsp_valor_venta_1']);
  2. $nsp_data_pv[]=array('nsp_programa' =>$_POST['nsp_programa_2'],'nsp_campana_programa' =>$_POST['nsp_campana_programa_2'],'nsp_periodo_programa' =>$_POST['nsp_periodo_programa_2'],'nsp_valor_venta' =>$_POST['nsp_valor_venta_2']);
  3. $nsp_data_pv[]=array('nsp_programa' =>$_POST['nsp_programa_3'],'nsp_campana_programa' =>$_POST['nsp_campana_programa_3'],'nsp_periodo_programa' =>$_POST['nsp_periodo_programa_3'],'nsp_valor_venta' =>$_POST['nsp_valor_venta_3']);
la idea seria hacer la conversion antes de que entre al arreglo o estoy mal
  #11 (permalink)  
Antiguo 22/03/2016, 11:42
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 11 meses
Puntos: 39
Respuesta: Guardar mes y año en MYSQL con php

Con mis pocos conocimientos de arrays, pudiera ser así.

Código PHP:
Ver original
  1. $nsp_pp = "01-".$_POST['nsp_periodo_programa_1'];

Código PHP:
Ver original
  1. nsp_periodo_programa' =>$nsp_pp,

Igual puedo estar equivocado
  #12 (permalink)  
Antiguo 22/03/2016, 13:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Guardar mes y año en MYSQL con php

Por favor, recuerden que concatenen como lo hagan, a la base tiene que llegar una fecha en formato estandar para el DBMS.
Si es MySQL, debe ser "AAAA-MM-DD", no al revés.
__________________
¿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 22/03/2016, 14:34
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años, 7 meses
Puntos: 2
Respuesta: Guardar mes y año en MYSQL con php

al final lo termine asi
Código PHP:
Ver original
  1. $fecha_periodo_1 = "01-".$_POST['nsp_periodo_programa_1'];
  2. $fecha_periodo_2 = "01-".$_POST['nsp_periodo_programa_2'];
  3. $fecha_periodo_3 = "01-".$_POST['nsp_periodo_programa_3'];
y al momento de insertar asi
Código PHP:
Ver original
  1. date("Y-m-d",strtotime($nsp_data_pv[$ni]['nsp_periodo_programa']))
Gracias a todos por su ayuda

Etiquetas: año, fecha, mysql
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 14:46.