Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Archivar por meses

Estas en el tema de Archivar por meses en el foro de Mysql en Foros del Web. Hola a todos estoy haciendo un administrador de noticias con PHP y MySQL al cual tengo el titulo de la noticia, la fecha en la ...
  #1 (permalink)  
Antiguo 12/11/2008, 19:34
 
Fecha de Ingreso: noviembre-2008
Mensajes: 23
Antigüedad: 15 años, 5 meses
Puntos: 0
Archivar por meses

Hola a todos estoy haciendo un administrador de noticias con PHP y MySQL al cual tengo el titulo de la noticia, la fecha en la cual se ingresa, la introducción a la noticia y toda la información de la noticia. Mi consulta es, como puedo hacer para archivar las noticias por meses para que luego los usuarios tengan un link para ver las noticias de meses pasados?
Gracias
  #2 (permalink)  
Antiguo 12/11/2008, 19:39
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Archivar por meses

Puedes hacer directamente una consulta por fechas a la base de datos, o sea, si el campo fecha es mayor que el día 1 de determinado mes y menor que el último día de ese mes .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 12/11/2008, 19:48
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 15 años, 8 meses
Puntos: 103
Respuesta: Archivar por meses

a cada noticia tiene que tener un campo fecha que diga la fecha de creacion de la noticia, y despues los separas con meses.
¿cual es el problema que tienes?
  #4 (permalink)  
Antiguo 12/11/2008, 19:50
 
Fecha de Ingreso: noviembre-2008
Mensajes: 23
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Archivar por meses

gracias chwc, la noticia tiene el campo de fecha, mi problema es que necesito saber como puedo hacerlo
gracias
  #5 (permalink)  
Antiguo 12/11/2008, 20:04
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
Respuesta: Archivar por meses

Hola pacognovellino,

Usa la función MONTH() de MySQL para buscar los mensajes de cierto mes, luego puedes hacer una consulta para obtener los meses por ejemplo:

Código sql:
Ver original
  1. SELECT DISTINCT MONTH(`campo_de_fecha`) FROM tabla_noticias

Saludos.

Tema trasladado a MySQL.
  #6 (permalink)  
Antiguo 13/11/2008, 05:24
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Archivar por meses

En la base de datos no tienes que hacer nada si ya tienes guardados los datos de fecha un un campo de tipo DATE, DATETIME o TIMESTAMP. GatorV te ha dado la solución y te ha sugerido una consulta para hacer una lista de los meses, sea para un selector, un listado como enlace, etc., lo que luego te permitiría lanzar la consulta sobre ese mes en concreto. Yo sólo te haré una aclaración a modo de advertencia: debes ser consciente de que los meses son meses de un año, y por tanto la consulta deberá ser algo así:
SELECT campo1, campo2, campo3, campofecha, etc. FROM tutabla WHERE YEAR(campofecha) = 2008 AND MONTH (campofecha) = 1

Con eso te traerías todas las noticias de enero de 2008.
Si sólo pones
SELECT campo1, campo2, campo3, campofecha, etc. FROM tutabla WHERE MONTH (campofecha) = 1
te encontrará todas las noticias de enero de todos los años...

Vigila eso. Con dos selectores, uno para el año y otro para el mes, puedes resolver el tema... Podrías hacerlos dinámicos y todo eso, pero lo importante es que sepas como encontrar las noticias de un año y mes determinado a partir de un dato de tipo date, datetime o timestamp de MySQL.

Suerte.

Última edición por jurena; 13/11/2008 a las 05:29
  #7 (permalink)  
Antiguo 13/11/2008, 11:20
 
Fecha de Ingreso: noviembre-2008
Mensajes: 23
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Archivar por meses

Gracias jurena, lo tomare en cuenta creo ya se como lo puedo hacer.
Gracias a todos
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:51.