Foros del Web » Programando para Internet » PHP »

Problema al ordenar resultados por fecha

Estas en el tema de Problema al ordenar resultados por fecha en el foro de PHP en Foros del Web. Hola amigos en mi foro tengo que se ordene por fecha de respuesta (El mas nuevo primero) pero ahora que a cambiado el mes me ...
  #1 (permalink)  
Antiguo 01/09/2009, 06:46
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Problema al ordenar resultados por fecha

Hola amigos en mi foro tengo que se ordene por fecha de respuesta (El mas nuevo primero) pero ahora que a cambiado el mes me acabo de dar cuenta que los mensaje de hoy "es decir 01/09/2009" se ponen detras del primero que se escribio en el mes 8 "es decir 04/08/2009". ¿Eso porque pasa?
  #2 (permalink)  
Antiguo 01/09/2009, 07:29
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Respuesta: Problema al ordenar resultados por fecha

Estás utilizando el formato "dd/mm/YYYY" para la fecha? o algún formato más estándar, como TIMESTAMP? Usás MySQL?
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #3 (permalink)  
Antiguo 01/09/2009, 07:32
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Problema al ordenar resultados por fecha

el campo es datetime y la consulta es esta:

Código PHP:
$sql "SELECT id, email, titulo, mensaje, DATE_FORMAT(fecha,'%d/%m/%Y %T') fecha, respuestas, DATE_FORMAT(ult_respuesta,'%d/%m/%Y %T') ult_respuesta, login, visitas ";
$sql.= "FROM foro WHERE identificador=0 ORDER BY ult_respuesta DESC";
$rs mysql_query($sql$con); 
  #4 (permalink)  
Antiguo 01/09/2009, 07:43
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Respuesta: Problema al ordenar resultados por fecha

Lo que digo... estás ordenando las fechas por día/mes/año, entonces bajo ese Formato, '01/09/09' es menor a '31/08/09'.

Tenés que cambiar el nombre "alias" del campo fecha, asi:

Código PHP:
Ver original
  1. $sql = "SELECT id, email, titulo, mensaje, DATE_FORMAT(fecha,'%d/%m/%Y %T') fecha, respuestas, DATE_FORMAT(ult_respuesta,'%d/%m/%Y %T') ultima_respuesta, login, visitas ";
  2. $sql.= "FROM foro WHERE identificador=0 ORDER BY ult_respuesta DESC";
  3. $rs = mysql_query($sql, $con);

Así, vas a ordenar por el campo ult_respuesta (como corresponde, el original de la base de datos) y el campo "formateado" queda en ultima_respuesta.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #5 (permalink)  
Antiguo 01/09/2009, 07:51
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
haber ahora lo mustra bien pero el campo que muestra la fecha de la ultima respuesta sale en blanco, ¿que te refieres que cambie en la base de datos ult_respuesta por ultima respuesta? si hago eso da error.

ya ya esta solucionado esque el que lo mostraba todavia tenia $ult_respuesta le he puesto $ultima_respuesta y va perfecto :D muchisimas gracias

Última edición por GatorV; 01/09/2009 a las 08:52
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 19:46.