Foros del Web » Programando para Internet » PHP »

Paginar por fecha?

Estas en el tema de Paginar por fecha? en el foro de PHP en Foros del Web. Hola foreros!!! Tengo una base de datos de un video club bastante avanzada y se me presentó un problema y no se me ocurre como ...
  #1 (permalink)  
Antiguo 12/03/2008, 11:03
 
Fecha de Ingreso: febrero-2004
Mensajes: 134
Antigüedad: 20 años, 3 meses
Puntos: 0
Paginar por fecha?

Hola foreros!!!
Tengo una base de datos de un video club bastante avanzada y se me presentó un problema y no se me ocurre como resolverlo.
Resulta que mi cliente me pidió de ver si se podía hacer que los estrenos del mes salgan en primera pagina susediendo a los meses pasados...por ej...


pag 1 novedades marzo 2008
pag 1 novedades febtero 2008
pag 1 novedades enero 2008
pag 1 novedades diciembre 2007

tranquilamente con números 03/2008 02/2008 etc

Pero no se si estoy haciendo bien las cosas ya que en mysql guardo las fechas en un campo (date) o debería hacer una tabla de meses(varchar) ya que eldía no se usa?
Otra cosa, existe la posibilidád de paginarlo de manera que me que carguen los estrenos en la primera pag y con botoncitos de anterior y siguiente buscar las pelis?
No se se si hace falta que ponga el código de mi php ya que es un simple php para levantar datos de una tabla pero ahí va!!!


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Películas</title>
</head>
<body>



Código PHP:
<?php $registros=mysql_query("select id_p,titulo,tapa,detalle,clasificacion,fecha,director,genero,pais from peliculas as p
join director as d on d.id=p.id_director
join genero as g on g.id=p.id_genero
join origen as o on o.id=p.id_origen"
,$conexion) or die("Problemas en el select:".mysql_error());
while (
$reg=mysql_fetch_array($registros))

{
?><table width="100%" height="212" border="0">
  <tr>
    <td width="170" height="212"><? echo "<img src='".$reg['tapa']."'>";?></td>
  <td><? echo "Título: ".$reg['titulo']."<br>";
  echo 
"Sinopsis: ".$reg['detalle']."<br>";
  echo 
"Clasificación: ";
  switch (
$reg['clasificacion']) {
    case 
1:echo "ATP";
           break;
    case 
2:echo "PM13";
           break;
    case 
3:echo "PM16";
           break;
    case 
4:echo "PM18";
           break;
  }
  echo 
"<br>";
  echo 
"Actores: ";
   
   
$sql=mysql_query("select actor from actor as a
    join actorxpeli as axp on axp.actor_id=a.id
    where axp.peli_id="
.$reg['id_p']);
   while (
$reg_act=mysql_fetch_array($sql))
   {
      echo 
$reg_act['actor'].', ';
   }
  echo 
"<br>";        
  echo 
"Estreno: ";.$reg['fecha']."<br>";
  echo 
"Director: ".$reg['director']."<br>";
  echo 
"Genero: ".$reg['genero']."<br>";
  echo 
"Origen: ".$reg['pais']."<br>";?>
Gracias por adelantado de tomarse las molestias de leer mi post
  #2 (permalink)  
Antiguo 12/03/2008, 12:26
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: Paginar por fecha?

pues es solo cosa de incluir un ORDER BY fecha DESC para que valla de forma descendente, si lo quieres de forma ascendente... es ASC
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 12/03/2008, 14:21
 
Fecha de Ingreso: febrero-2004
Mensajes: 134
Antigüedad: 20 años, 3 meses
Puntos: 0
Re: Paginar por fecha?

Eso creo que solo me lo daría en forma descendente

Gracias igualmente
  #4 (permalink)  
Antiguo 12/03/2008, 14:56
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Re: Paginar por fecha?

¿Cómo sabes si una peli es estreno o no? ¿Sólo con la fecha? me refiero a que si la fecha está dentro de la semana actual, ¿es estreno?

Por el lado de la paginación, lo que entiendo es que quieres que los estrenos queden en portada, y haciendo click en "siguiente" vean las pelis pasadas, cierto?

Lo que yo imagino es algo como esto:

- Si la página no recibe parámetros por GET (ejemplo: "index.php" peladito), tú ordenas que la consulta sea "mostrar sólo las peliculas que son estreno". Más abajo habrá un link a "ver más películas"
- Si la página recibe paraémtro por GET, tal como "index.php?pag=1", tú ordenas que la consulta sea "mostrar las pelis según el criterio solicitado".

Ahora bien, las pelis que no son estreno, según entiendo, las quieren ordenadas por fecha, descendente. Yo habría pensado que igual sería bueno que las listaran por abecedario. Pero es una idea...

Para ordenar por mes, pues la consulta debiera ser algo como, por ejemplo, para el actual Marzo 2008 :
Código:
select campos from tablas where fecha >= '2008-03-01' and fecha <= '2008-03-31' order by fecha desc
U ordenando según lo que tú decidas: titulo, fecha, estudio, no sé.
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #5 (permalink)  
Antiguo 13/03/2008, 10:29
 
Fecha de Ingreso: febrero-2004
Mensajes: 134
Antigüedad: 20 años, 3 meses
Puntos: 0
Re: Paginar por fecha?

Intenté con esto pero nada!!!


Código PHP:
$reg=mysql_query("select titulo,date_format(fecha,'%m') as mes,date_format(fecha,'%Y') as ano,max(fecha) as mx from peliculas group by titulo having fecha>=mx");
while(
$row=mysql_fetch_array($reg)) 
    {
          echo 
$row['titulo'].', ';
      echo 
$row['mes'].'/ ';
      echo 
$row['ano'].'<br>';
    } 
Por lo menos pude extraer el año y el mes de la fecha, pero no logro que solo me devuelva los que se cargaron el ultimo mes...pensé que con max(fecha), ya que cargo a todas con día 01, iba a andar pero me devolvía todas las pelis...a ver si alguien un poco mas despierto me da una idea que me estoy volviendo loco
  #6 (permalink)  
Antiguo 13/03/2008, 12:35
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Paginar por fecha?

si usas un WHILE mientras haya resultados del mes y año te los mostrara todos.

has de tomar el mes actual haciendo algo asi:

Código PHP:

<?php 
$fecha 
date("d-m-Y");
$fechita explode('-',$row['fecha']);
$mes_actual"$fechita[1]";  //donde $fechita[1]  es el mes actual
?>
despues haz el query

$row=mysql_fetch_array($reg)

colocas los resultados en el array $row

si lo demas lo haces con if

Código PHP:
if ($row['mes']==$mes_actual){

echo 
$row['titulo'].', '
      echo 
$row['mes'].'/ '
      echo 
$row['ano'].'<br>'
}else{echo 
"no hay estrenos";} 
es solo una idea, el codigo no lo uses tal cual, no se si esta bien de sintaxis y demas.


}
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 19:37.