PHP-Hispano.net Comunidad hispana de desarrollo web
Darse de alta en la web | Recuperar password   
Inicio / Foros / PHP / Paginando por meses usando timestamps tipo unix

Paginando por meses usando timestamps tipo unix

3 respuestas 2191 visitas Categoría PHP

Paginando por meses usando timestamps tipo unix

Avatar de thessoro

Nivel 4 (755 posts)

* * * * * * *

2 Agradecimientos

#0 Offline thessoro 20 ene 04
A raíz de una duda en el canal, encontré un par de soluciones en el manual siempre caótico de mysql que quizá os puedan interesar.
Guardando las fechas en la bd en formato timestamp de unix se quería primero mostrar una lista de links tipo:
Enero de 2004
Febrero de 2004
...
y despues mostrar los resultados en otro script tras haber pulsado el link.
Siendo fecha el campo que contiene los timestamps para generar el listado de links podriamos usar:
$meses=array(\"Enero\",\"Febrero\",....);
$query=\"Select month(from_unixtime(fecha)),year(from_unixtime(fecha)) from tabla order by fecha\";
$resid=mysql_query($query,$link);
// Esto devuelve una lista ordenada de menor a mayor con el mes y año que consta en el timestamp de cada registro.
while ($resultado=mysql_fetch_array($resid)) {
if ($resultado[0]!=$mes && $resultado[1]!=ano) {
$mes=$resultado[0];
$ano=$resultado[1];
echo \"<link a href=\\\"otrapagina.php?mes=$mes&ano=$ano\\\">{$meses[$mes-1]} de $ano</a>\";
}
}

Despues en el script destino, con un link tipo otrapagina.php?mes=5&ano=2003 podriamos

$query=\"Select * from tabla where month(from_unixtime(fecha))={$_GET[\'mes\']} and year(from_unixtime(fecha))={$_GET[\'ano\']}\";

De aqui sacariamos todos los registros del mes y año seleccionados.
Mas cosas curiosas sobre operaciones con fechas en mysql en:
Date and Time functions



Re: Paginando por meses usando timestamps tipo unix

Avatar de wave69

Nivel 1 (29 posts)

* * * * * * *

0 Agradecimientos

#1 Offline wave69 23 ene 04 0 personas consideran útil este post.
esseee!!! eres la pera, tio :D

Y lo que me enseñaste

Avatar de Gerald

Nivel 2 (186 posts)

* * * * * * *

0 Agradecimientos

#2 Offline Gerald 24 ene 04 0 personas consideran útil este post.
y lo que me enseñaste en el chat funciona pero que me recomiendas\'

Re: Paginando por meses usando timestamps tipo unix

Avatar de thessoro

Nivel 4 (755 posts)

* * * * * * *

2 Agradecimientos

#3 Offline thessoro 24 ene 04 0 personas consideran útil este post.
Gerald hay muchas formas de llegar a una misma solución. Es tarea del programador no sólo resolver una tarea, sino intentar hacerlo de la forma más eficaz y menos pesada posible. A medida que avanzas y aprendes vas descubriendo que el código que has ido dejando atrás podía ser más eficiente, y que lo que antes hacías en 20 líneas ahora lo puedes resolver en una. Si no recuerdo mal, la solución que te propuse pasaba por el calculo del timestamp del mes siguiente usando strtotime (.......+1month), desconocía la función from_unixtime de mysql. Se podría decir que esta solución es algo más elegante que la anterior.

Responder mensaje

Para poder participar debes ser un usuario registrado de PHP-Hispano. :: Deseo darme de alta en esta comunidad ::
Login / Password   

Temas relacionados

E Titulo Respuestas Última resp. Creado el Visitas Foro
Pregunta Ayuda para hacer un... 9 18 mar 04
por Gerald
mié, 17 mar 04 (15:42)
por keco
1451 PHP

php-hispano.net 2002 - 2013 | XHTML 1.0
Datos Legales | Webmaster