Foros del Web » Programando para Internet » PHP »

Registro por mes y año

Estas en el tema de Registro por mes y año en el foro de PHP en Foros del Web. Hola cracs, Este tema no debe ser nuevo pero es que no encontre nada que me ayudara. Estoy con un mini blog que te permite ...
  #1 (permalink)  
Antiguo 06/10/2010, 11:20
 
Fecha de Ingreso: mayo-2006
Mensajes: 8
Antigüedad: 17 años, 10 meses
Puntos: 0
Registro por mes y año

Hola cracs,

Este tema no debe ser nuevo pero es que no encontre nada que me ayudara.

Estoy con un mini blog que te permite seleccionar posts por mes y año y ya tengo el listado de meses y años:
Código:
<?php
mysql_connect("localhost","nombre","nombre");
$result2=mysql_db_query("nombre","SELECT DISTINCT YEAR(fecha) AS yr, MONTH(fecha) AS mn, DATE_FORMAT(fecha,'%M') AS mn from noticias ORDER BY `fecha` DESC");
?>     
<?
//Mostramos los registros
while ($row=mysql_fetch_array($result2))
{
echo '<a href="indexdate.php?mn='.$row["mn"].'&yr='.$row["yr"].'" class="link2">'.$row["mn"].' '.$row["yr"].'</a><br>';

}
mysql_free_result($result2)
?>
Ahora quiero que al clicar en un mes y año me muestre los posts correspondientes y probe esto:
Código:
<?php
mysql_connect("localhost","nombre","nombre");
$result=mysql_db_query("nombre","select YEAR(fecha) AS yr, MONTH(fecha) AS mn, titulo, DATE_FORMAT(fecha,'%d %M %Y') AS fecha, foto1, foto2, foto3, video, texto from noticias Where mn='".$_GET['mn']."' AND yr='".$_GET['yr']."'  ORDER BY `fecha` ASC");
?>
Pero me devuelve error y la verdad es que soy bastante basico con esto del php asi que agradeceria un poco de ayuda.

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 06/10/2010, 11:26
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Registro por mes y año

a primera vista parece error

$result=mysql_db_query("nombre","select etc....
__________________
LuZbIng
  #3 (permalink)  
Antiguo 06/10/2010, 11:27
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Registro por mes y año

tu error es de sql el problema estas comparando el valor por una alias de la consulta y no contra un campo de la bd me imagino que por eso te tira error. (sino pon cual es el error que tira)

lo que puedes hacer es hacer es comparar contra un substr del campo fecha
http://dev.mysql.com/doc/refman/5.0/...unction_substr
  #4 (permalink)  
Antiguo 06/10/2010, 11:32
 
Fecha de Ingreso: mayo-2006
Mensajes: 8
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Registro por mes y año

Cita:
Iniciado por LuZBinG Ver Mensaje
a primera vista parece error

$result=mysql_db_query("nombre","select etc....
LuZBinG, solo puse nombre para ocultar los datos del cliente.

Death_Empire, este es el error que me da:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/d217435/public_html/es/blog/indexdate.php on line 99

Lo que dices tiene todo el sentido de todas formas
  #5 (permalink)  
Antiguo 06/10/2010, 11:32
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Registro por mes y año

o lo que puedes hacer es hacer es en el where poner where YEAR(fecha) = $_get['year']
  #6 (permalink)  
Antiguo 06/10/2010, 11:33
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Registro por mes y año

no se que versión de php estes usando per mira aqui y una cosa mas en el primer código que pones, estas usando un mismo alias para dos datos
Código:
MONTH(fecha) AS mn, DATE_FORMAT(fecha,'%M') AS mn
creo que uno esta de mas.
saludos
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #7 (permalink)  
Antiguo 06/10/2010, 11:38
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Registro por mes y año

ok otra cosa
no entendi bien a lo que te referias con la consulta y lo que pones en tu post
Cita:
seleccionar posts por mes y año y ya tengo el listado de meses y años:
no es necesario hacer esto YEAR(fecha) AS yr, MONTH(fecha) AS mn y despues aplicarlos al where error

lo que entiendo que quieres hacer es esto:
select titulo,foto1, foto2, foto3, video, texto from noticias where month(fecha)='' and YEAR(fecha) = '' order by fecha asc
salu2
__________________
LuZbIng
  #8 (permalink)  
Antiguo 06/10/2010, 11:38
 
Fecha de Ingreso: mayo-2006
Mensajes: 8
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Registro por mes y año

Cita:
Iniciado por Death_Empire Ver Mensaje
o lo que puedes hacer es hacer es en el where poner where YEAR(fecha) = $_get['year']
Probe eso pero no me funciono

Eits, lo que use es alias para el mes y otro para el año, pero para el formato lo deje tal cual.

MONTH(fecha) AS mn, DATE_FORMAT(fecha,'%M') AS fecha
  #9 (permalink)  
Antiguo 06/10/2010, 11:42
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Registro por mes y año

tambien puedes hacer el or die para ver el error que devuelve mysql
Código PHP:
Ver original
  1. $result=mysql_db_query("nombre","select YEAR(fecha) AS yr, MONTH(fecha) AS mn, titulo, DATE_FORMAT(fecha,'%d %M %Y') AS fecha, foto1, foto2, foto3, video, texto from noticias Where mn='".$_GET['mn']."' AND yr='".$_GET['yr']."' ORDER BY `fecha` ASC") or die(mysql_error());
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #10 (permalink)  
Antiguo 06/10/2010, 11:47
 
Fecha de Ingreso: mayo-2006
Mensajes: 8
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Registro por mes y año

Cita:
Iniciado por eits Ver Mensaje
tambien puedes hacer el or die para ver el error que devuelve mysql
Código PHP:
Ver original
  1. $result=mysql_db_query("nombre","select YEAR(fecha) AS yr, MONTH(fecha) AS mn, titulo, DATE_FORMAT(fecha,'%d %M %Y') AS fecha, foto1, foto2, foto3, video, texto from noticias Where mn='".$_GET['mn']."' AND yr='".$_GET['yr']."' ORDER BY `fecha` ASC") or die(mysql_error());
Lo he probado y dice mysql_error

Gracias a todos por vuestra ayuda
  #11 (permalink)  
Antiguo 06/10/2010, 12:02
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Registro por mes y año

checalo de nuevo, es que se me olvido poner los () al final, pero ya lo he corregido, y eso quiere decir que hay error en la consulta.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #12 (permalink)  
Antiguo 06/10/2010, 12:34
 
Fecha de Ingreso: mayo-2006
Mensajes: 8
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Registro por mes y año

Gracias eits

Cita:
Iniciado por eits Ver Mensaje
checalo de nuevo, es que se me olvido poner los () al final, pero ya lo he corregido, y eso quiere decir que hay error en la consulta.
Ahora me dio este error:

Unknown column 'mn' in 'where clause'

Intente tambien:

Where MONTH(fecha)='".$_GET['mn']."' AND YEAR(fecha)='".$_GET['yr']."'

pero ese no me muestra nada
  #13 (permalink)  
Antiguo 06/10/2010, 12:36
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Registro por mes y año

Código PHP:

$result
=mysql_db_query("nombre","select YEAR(fecha) AS yr, MONTH(fecha) AS mn, titulo, DATE_FORMAT(fecha,'%d %M %Y') AS fecha, foto1, foto2, foto3, video, texto from noticias Where MONTH(fecha)='".$_GET['mn']."' AND YEAR(fecha)='".$_GET['yr']."' ORDER BY `fecha` ASC") or die(mysql_error()); 
  #14 (permalink)  
Antiguo 06/10/2010, 12:40
 
Fecha de Ingreso: mayo-2006
Mensajes: 8
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Registro por mes y año

Cita:
Iniciado por Death_Empire Ver Mensaje
Código PHP:

$result
=mysql_db_query("nombre","select YEAR(fecha) AS yr, MONTH(fecha) AS mn, titulo, DATE_FORMAT(fecha,'%d %M %Y') AS fecha, foto1, foto2, foto3, video, texto from noticias Where MONTH(fecha)='".$_GET['mn']."' AND YEAR(fecha)='".$_GET['yr']."' ORDER BY `fecha` ASC") or die(mysql_error()); 
ese es el que no me devuelve ningun resultado
  #15 (permalink)  
Antiguo 06/10/2010, 12:51
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Registro por mes y año

pero estas seguro que hay registro a devolver ??

los valores $_GET que le estas pasando tienen el valor a buscar ??
  #16 (permalink)  
Antiguo 06/10/2010, 13:33
 
Fecha de Ingreso: mayo-2006
Mensajes: 8
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Registro por mes y año

Si que hay, el campo fecha es un campo "date" con registros como:

2010-09-07
2010-10-06

y las variables que paso por la url:

...url.php?mn=September&yr=2010

Deberia funcionar?
  #17 (permalink)  
Antiguo 06/10/2010, 13:39
 
Fecha de Ingreso: mayo-2006
Mensajes: 8
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Registro por mes y año

Listo!

El problema era que al pasar el mes por la url como "September" y no como un numero "09" no me devolvia registros.

Gracias a todos!

Etiquetas: año, registro
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 23:07.