Foros del Web » Programando para Internet » PHP »

Mostrar resultados ordenados por fechas

Estas en el tema de Mostrar resultados ordenados por fechas en el foro de PHP en Foros del Web. Hola a todos. A pesar de que creo que es bastante sencilla la solución a mi pregunta, llevo toda la tarde dandole vueltas al tema, ...
  #1 (permalink)  
Antiguo 13/11/2007, 11:07
 
Fecha de Ingreso: enero-2007
Mensajes: 158
Antigüedad: 17 años, 3 meses
Puntos: 2
Mostrar resultados ordenados por fechas

Hola a todos.

A pesar de que creo que es bastante sencilla la solución a mi pregunta, llevo toda la tarde dandole vueltas al tema, y no consigo dar con la solución.

Tengo una base de datos con noticias. Cada noticia insertada, tiene una fecha distinta.

Pues me gustaría saber qué debo hacer para mostrar los resultados por fechas, es decir:

--------------------------------------------
Día: 2007-11-12
--------------------------------------------
Noticia 1
Noticia 2
Noticia 3

--------------------------------------------
Día: 2007-11-13
--------------------------------------------
Noticia 4
Noticia 5
Noticia 6

Y asi sucesivamente...

Alguien me echa una mano?
  #2 (permalink)  
Antiguo 13/11/2007, 11:16
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Re: Mostrar resultados ordenados por fechas

hola, si es sencilla la solucion:
Código PHP:
SELECT FROM noticias ORDER BY fecha DESC // o ASC segun quieras 
saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #3 (permalink)  
Antiguo 13/11/2007, 12:20
 
Fecha de Ingreso: enero-2007
Mensajes: 158
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Mostrar resultados ordenados por fechas

Si hasta ahí más o menos habia llegado.

Pero me muestra todos los resultados uno detrás de otro, sin hacer distinción entre fechas.

Utilizo lo siguiente:

Código PHP:
$sql "SELECT * FROM noticias ORDER BY fecha DESC"
$resultado mysql_query($sql) or die (mysql_error()); 

while (
$fila=mysql_fetch_object($resultado))

     echo 
$fila->titulo_noticia;

Si quiero mostrarlos de la forma anterior, es decir, de esta forma:

--------------------------------------------
Día: 2007-11-12
--------------------------------------------
Noticia 1
Noticia 2
Noticia 3

--------------------------------------------
Día: 2007-11-13
--------------------------------------------
Noticia 4
Noticia 5
Noticia 6

¿Qué debo hacer?
  #4 (permalink)  
Antiguo 13/11/2007, 12:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Mostrar resultados ordenados por fechas

Para ese control deberias de hacerlo directamente en PHP:
Código PHP:
$sql "SELECT * FROM noticias ORDER BY fecha DESC"
$resultado mysql_query($sql) or die (mysql_error()); 

$prevDate "";
while (
$fila=mysql_fetch_object($resultado))

     if( 
$prevDate != $fila->fecha_noticia ) {
           echo 
$fila->fecha_noticia "<hr />";
           
$prevDate $fila->fecha_noticia;
     }
     echo 
$fila->titulo_noticia;

Saludos.
  #5 (permalink)  
Antiguo 13/11/2007, 12:43
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Re: Mostrar resultados ordenados por fechas

y no es mejor entonces hacerlo con un GROUP BY???
Código PHP:
SELECT FROM noticias ORDER BY fecha DESC GROUP BY dia 
saludos
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #6 (permalink)  
Antiguo 13/11/2007, 12:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Mostrar resultados ordenados por fechas

El GROUP BY te agrupa los resultados, pero el problema es que a la hora de descargarlos solo te sale el conjunto, un formateo como el que el compañero requiere debe de hacerse a nivel código.

Saludos.
  #7 (permalink)  
Antiguo 13/11/2007, 12:53
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Re: Mostrar resultados ordenados por fechas

Cita:
Iniciado por GatorV Ver Mensaje
El GROUP BY te agrupa los resultados, pero el problema es que a la hora de descargarlos solo te sale el conjunto, un formateo como el que el compañero requiere debe de hacerse a nivel código.

Saludos.
hola moderador, usted siempre tan amable , no entiendo como es eso de des agruparlos , como lo haria? para que me sirve?

gracias
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #8 (permalink)  
Antiguo 13/11/2007, 13:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Mostrar resultados ordenados por fechas

A que te refieres con des agruparlos? jeje, cuando tu lanzas una clausula GROUP BY MySQL te regresa el conjunto de resultados, pero por decir, me ha pasado varias veces que por decir de cierto día, me regresa una sola noticia (aleatoria) por lo que para mostrar TODAS las noticias debe el formateo ser a nivel código.

Saludos.
  #9 (permalink)  
Antiguo 13/11/2007, 13:29
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Re: Mostrar resultados ordenados por fechas

Cita:
Iniciado por GatorV Ver Mensaje
A que te refieres con des agruparlos? jeje,
eso hay que preguntarselo al diccionario de FF
bueno, al grano, y si hago algo asi:
Código PHP:
<?php
$sql 
"SELECT * FROM noticias ORDER BY fecha DESC GROUP BY dia"
$resultado mysql_query($sql) or die (mysql_error()); 

while (
$fila mysql_fetch_array($resultado)){     
echo 
$fila['dia'];
echo 
"
<ul>
<li>$fila[titulo];</li>
</ul>"
;

?>
se puede???
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose

Última edición por rogertm; 13/11/2007 a las 13:41
  #10 (permalink)  
Antiguo 13/11/2007, 13:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Mostrar resultados ordenados por fechas

Si pero te lanzaria solo 1 resultado de cada dia

Pruebalo en una consola de MySQL y veras que no se agrupan los resultados como esperas.

La idea del GROUP BY es para agrupar un conteo, por decir, contar cuantas noticias hay cada dia:
Código:
SELECT `dia`, COUNT(*) FROM `noticias` GROUP BY `dia`
Saludos.
  #11 (permalink)  
Antiguo 13/11/2007, 13:50
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Re: Mostrar resultados ordenados por fechas

bue, gracias moderador, me he ahorrado un post
Cita:
mientras mas aprendo, me doy cuenta que se menos.
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #12 (permalink)  
Antiguo 13/11/2007, 14:58
 
Fecha de Ingreso: enero-2007
Mensajes: 158
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Mostrar resultados ordenados por fechas

Muchas gracias a todos, me sirve el codigo de GatorV. (Sus codigos siempre son buenos!! jeje)

Veo que el tema a resultado util para mas de una persona. jeje

Un saludo!!
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 13:57.