Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/07/2013, 08:40
raulgranadosraul
 
Fecha de Ingreso: julio-2013
Mensajes: 174
Antigüedad: 10 años, 9 meses
Puntos: 1
Problema en la consulta entre dos fechas

Buenos días compañeros, tengo una duda de como realizar una consulta a la BD para que me muestre artículos por meses. Os cuento:

Tengo creado un sistema de noticias y comentarios en una web. En el apartado de noticias hay un directorio de noticias anteriores (lo pueden ver en la imagen), en el que estoy intentando mostrar las noticias publicadas en un mes al clickar en el.

Desde la página noticias.php que contiene el directorio le paso dos parámetros al enlace de cada mes esta manera:
Código HTML:
Ver original
  1. <a href="noticias_anteriores.php?mes=07&year=2013">JULIO</a>

En la pagina noticias_anteriores.php tengo la consulta a la base de datos para que me devuelva todas las noticias entre dos fechas, de esta manera:
Código PHP:
Ver original
  1. "SELECT * FROM tblnoticias WHERE tblnoticias.fecha BETWEEN '2013/07/01' AND '2013/08/01'";
que también tengo que hacerla manualmente para cada mes de cada año, pues no se hacer que se cambie automaticamente al clickar en un mes en concreto.

En noticias_anteriores.php tengo declaradas las variables $mes y $year de la siguiente forma:
Código PHP:
Ver original
  1. <?php
  2. function nombremes($mes)
  3. {
  4.     if ($mes == 01) return "Enero";
  5.     if ($mes == 02) return "Febrero";
  6.     if ($mes == 03) return "Marzo";
  7.     if ($mes == 04) return "Abril";
  8.     if ($mes == 05) return "Mayo";
  9.     if ($mes == 06) return "Junio";
  10.     if ($mes == 07) return "Julio";
  11.     if ($mes == 08) return "Agosto";
  12.     if ($mes == 09) return "Septiembre";
  13.     if ($mes == 10) return "Octubre";
  14.     if ($mes == 11) return "Noviembre";
  15.     if ($mes == 12) return "Diciembre";
  16. }
  17. function nombreyear($year)
  18. {
  19.     if ($year == 2013) return "2013";
  20.     if ($year == 2014) return "2014";
  21. }
  22. ?>

Y en el titulo donde me muestra el mes y el año de las noticias tengo esto:
Código HTML:
Ver original
  1. <h1 align="center" style="text-shadow: 1px 1px 0 #FFFFFF; font-size:22px"><br />Noticias publicadas en <?php echo nombremes ($mes); ?>&nbsp;de&nbsp;<?php echo nombreyear ($year); ?></h1>

Tengo varios problemas con esto.

- Uno es que tengo que crear la carpeta con los parámetros $mes y $year manualmente, ya que no se como hacer para que cuando cambie el mes se cree automáticamente, aunque eso no me importa porque lo hago manual y listo.

- No se por qué aunque pase los datos por ejemplo con $mes=07, en vez de devolverme "Julio" (que en el php de arriba tengo que si $mes==07 me devuelva julio) me devuelve el valor del $mes==08 que es agosto. Es decir siempre me suma un mes mas, si pongo 05 me devuelve el 06, si pongo el 06 me devuelve el 07 y asi sucesivamente. En la imágen2 ven el resultado para $mes=07&$year=2013 (que está en los parámetros a pasar por GET abajo) y en vez de devolverme "julio de 2013" me devuelve "agosto" y sin el año.

- El último problema de momento es que el año no me lo devuelve (en la imagen2 lo pueden ver tambien), no se si es porque tengo mal escrita la sentencia de salida o porque tengo mal la función o no se por qué, ya que la funcin está escrita exactamente igual que la de $mes.

Si me podéis ayudar con esto se lo agradezco mucho.
Espero me podais echar una mano.

No se si me he explicado bien, pero si no es así, vuelvo a poner los datos que me pidáis, a ver si soluciono este problema.

Gracias por adelantado.
Raúl

IMÁGEN 1


IMÁGEN 2