Foros del Web » Programando para Internet » PHP »

Ordenar fechas

Estas en el tema de Ordenar fechas en el foro de PHP en Foros del Web. En principio saludar a todos los foreros pues este es mi primer mensaje. Espero poder ayudar tanto como veo que ayudan los demás. No soy ...
  #1 (permalink)  
Antiguo 23/10/2008, 04:50
 
Fecha de Ingreso: octubre-2008
Ubicación: Valladolid
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Ordenar fechas

En principio saludar a todos los foreros pues este es mi primer mensaje. Espero poder ayudar tanto como veo que ayudan los demás.

No soy un gran experto en PHP por lo que me surgen muchas dudas. Estoy haciendo un foro y al sacar las respuestas quiero verlas en orden descendente según la última respuesta (lo habitual), pero como previamente he dado formato de fecha poniendo antes el día que el mes, no me las ordena correctamente. Es decir, que me coloca antes el 14-09-2008 que el 12-10-2008

Código PHP:
$sql "SELECT id, ..., DATE_FORMAT(ult_respuesta,'%d/%m/%Y %H:%i:%s') AS ult_respuesta ";
$sql.= "FROM foro WHERE ... ORDER BY ult_respuesta DESC"
¿Cómo se puede hacer para que las ordene correctamente con ese formato de fecha?
  #2 (permalink)  
Antiguo 23/10/2008, 05:14
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: Ordenar fechas

Muy facil, no uses el mismo nombre del campo como alias del campo calculado:
Código PHP:
$sql "SELECT id, ..., DATE_FORMAT(ult_respuesta,'%d/%m/%Y %H:%i:%s') AS mi_ult_respuesta ";
$sql.= "FROM foro WHERE ... ORDER BY ult_respuesta DESC"
Asi te ordena por el campo de la tabla ult_respuesta que es de tipo fecha y tu usas mi_ult_respuesta para mostrar la fecha en tu html (te obliga a cambiar todos los sitios donde muestras el campo).

Una solucion un poco mas chapucera seria incluir en el select el campo ult_respuesta con un alias distinto y ordenar por ese alias.
  #3 (permalink)  
Antiguo 23/10/2008, 10:08
 
Fecha de Ingreso: octubre-2008
Ubicación: Valladolid
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Ordenar fechas

Muchas gracias por tu respuesta.

Pero supongo que tendré que crear dicho campo (Mi_ult_respuesta) en la tabla.

Bueno, ya lo miraré. Muchas gracias
  #4 (permalink)  
Antiguo 23/10/2008, 10:29
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: Ordenar fechas

No, lo que dice DarkJ es que pongas mi_ult_respuesta como un alias. Sino, podrías usar algo así:

Código PHP:
$sql "SELECT id, ..., DATE_FORMAT(ult_respuesta,'%d/%m/%Y %H:%i:%s') AS ult_respuesta "
$sql.= "FROM foro WHERE ... ORDER BY foro.ult_respuesta DESC"
Creo que eso debería funcionarte, sería cosa que lo pruebes.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #5 (permalink)  
Antiguo 23/10/2008, 12:59
 
Fecha de Ingreso: octubre-2008
Ubicación: Valladolid
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Ordenar fechas

Perfecto, nicolaspar. Funciona perfectamente. Muchas gracias
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 10:37.