Foros del Web » Programando para Internet » PHP »

Fechas mysql y php

Estas en el tema de Fechas mysql y php en el foro de PHP en Foros del Web. Que tal compañeros, nuevamente aqui con otro problema con las fechas, veran, inserto en la base de datos una tarea con una fecha en la ...
  #1 (permalink)  
Antiguo 12/07/2012, 17:20
Avatar de poncharelo_69  
Fecha de Ingreso: octubre-2011
Ubicación: Queretaro
Mensajes: 86
Antigüedad: 13 años
Puntos: 10
Fechas mysql y php

Que tal compañeros, nuevamente aqui con otro problema con las fechas, veran, inserto en la base de datos una tarea con una fecha en la cual quiero que sea entregada.

Hago una consulta para poder contar cuantas tareas tiene el usuario y si esas tareas tienen la misma fecha a la fecha actual entonces las cuenta y me dice cuantas son las que se tienen que hacer con urgencia.

El problema es que la consulta me trae un valor cero, espero me puedan ayudar, aqui dejo el codigo de mi consulta.

Código PHP:
$fecha date("Y-m-d");
$sql 'select count(*) as tareas from tareas where id = '.$id.' and fecha = "'.$fecha.'"';
$res mysql_query($sql);
$row mysql_fetch_array($res);
echo 
$row[0]; 
El formato de la fecha de la base de datos es el siguiente: 0000-00-00
  #2 (permalink)  
Antiguo 12/07/2012, 18:07
Avatar de topo_bionico  
Fecha de Ingreso: junio-2012
Mensajes: 89
Antigüedad: 12 años, 5 meses
Puntos: 20
Respuesta: Fechas mysql y php

Para que pones el "as tareas" si tenes una sola tabla nomas y no haces ninguna consulta compleja como para identificar las tablas.

Proba con este código.
Código SQL:
Ver original
  1. $sql = 'select count(*) from tareas where id = '.$id.' and fecha = "'.$fecha.'"';

Otra cosa que tenes que tener en cuenta es el horario UTC de la base de datos, por ejemplo si esta en UTC 00:00 y por ejemplo, vos que estas en México que el UTC es -06:00 cuando haces una consulta a las 19:00 en el servidor son las 01:00, por ende, otro día.
Otra cosa a tener en cuenta es que si los usuarios son de distintos lugares con distintos usos horarios vas a tener que normalizar los horarios de las consultas y del script PHP.


También podes usar la función CURDATE() de MySQL

Código SQL:
Ver original
  1. $sql = 'select count(*) from tareas where id = '.$id.' and fecha = curdate()';

Pero vas a seguir teniendo el problema de los husos horarios.


Para saber que horario maneja el servidor MySQL podes averiguarlo con:
Código MySQL:
Ver original 

Que devuelve un dato del tipo: 2012-07-12 21:00:10
  #3 (permalink)  
Antiguo 13/07/2012, 08:38
Avatar de poncharelo_69  
Fecha de Ingreso: octubre-2011
Ubicación: Queretaro
Mensajes: 86
Antigüedad: 13 años
Puntos: 10
Respuesta: Fechas mysql y php

Gracias topo, les comento.

He realizado la prueba eliminando el "as tareas" y aun así no funciona.

En la sentencia SQL en elimine la variable de $fecha y puse como lo mencionaste el curdate(), pero de la misma manera sigue sin funcionar.

Revise los usos horarios como lo mencionaste y mientras en el servidor marca una hora la base de datos solo tiene un minuto de diferencia. La hora en cuanto a los usos horarios esta correcta, es decir, hice las pruebas obteniendo la fecha del servidor y base de datos y son las mismas.
  #4 (permalink)  
Antiguo 13/07/2012, 10:12
Avatar de Heiroon  
Fecha de Ingreso: junio-2010
Ubicación: Caracas, Venezuela - Por ahora...
Mensajes: 495
Antigüedad: 14 años, 5 meses
Puntos: 63
Exclamación Respuesta: Fechas mysql y php

Esas dos cosas eran para optimizar el código, pero no son la causa del problema.

Sería bueno ver un set de data de esa tabla tareas a ver... También sería bueno conocer los Data Types de cada columna...

Saludos!
__________________
Gmail : [email protected]
Twitter: @heiroon

I'm back!
  #5 (permalink)  
Antiguo 13/07/2012, 20:15
Avatar de topo_bionico  
Fecha de Ingreso: junio-2012
Mensajes: 89
Antigüedad: 12 años, 5 meses
Puntos: 20
Respuesta: Fechas mysql y php

Cita:
Iniciado por Heiroon Ver Mensaje
Esas dos cosas eran para optimizar el código, pero no son la causa del problema.

Sería bueno ver un set de data de esa tabla tareas a ver... También sería bueno conocer los Data Types de cada columna...

Saludos!
Exacto, como dice Heiroon el problema puede estar por un mal seteo del tipo de dato que almacena el campo.

Para que MySQL maneje fechas el campo tiene que ser del tipo DATE o DATETIME con cualquier otro tipo (VARCHAR, TEXT, etc) capaz que podes cargar la fecha, pero se almacena como STRING
  #6 (permalink)  
Antiguo 17/07/2012, 09:11
Avatar de poncharelo_69  
Fecha de Ingreso: octubre-2011
Ubicación: Queretaro
Mensajes: 86
Antigüedad: 13 años
Puntos: 10
Respuesta: Fechas mysql y php

Gracias, en efecto después de estar revisando el código y generar pruebas dentro del phpmyadmin de la sentencia mysql, encontre que el detalle era que hacia una consulta sobre un id, el cual no existia, por lo cual mostraba algo completamente diferente, ya aplique corrigiendo el id y poniendo el que debía de ser y todo funciona de manera correcta, muchas gracias.

Etiquetas: mysql, sql, usuarios
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.