Foros del Web » Programando para Internet » PHP »

Paginado por semana

Estas en el tema de Paginado por semana en el foro de PHP en Foros del Web. Hola gente, estoy tratando de adaptar [URL="http://www.forosdelweb.com/f18/aporte-enesimo-paginador-resultados-php-mysql-975475/"]este [/URL]sistema de paginado del compañero [URL="http://www.forosdelweb.com/miembros/repara2/"]repara2[/URL] a paginado por semana, es decir cada pagina que muestre los resultados ...
  #1 (permalink)  
Antiguo 07/05/2013, 08:07
 
Fecha de Ingreso: marzo-2013
Mensajes: 18
Antigüedad: 11 años, 1 mes
Puntos: 1
Paginado por semana

Hola gente, estoy tratando de adaptar [URL="http://www.forosdelweb.com/f18/aporte-enesimo-paginador-resultados-php-mysql-975475/"]este [/URL]sistema de paginado del compañero [URL="http://www.forosdelweb.com/miembros/repara2/"]repara2[/URL] a paginado por semana, es decir cada pagina que muestre los resultados de una semana.

Ejemplo:

- Pagina 1 = Semana 1
- Pagina 2 = Semana 2
...etc

Pagina inicio = Semana Actual.

Código PHP:
$hoy date("Y-m-d H:i:s");
$nseman date('W'strtotime($hoy));

echo 
"$hoy<br>$nseman<br>";

//Tama de las páginas a mostrar
define('PAGINA'10);

//Obtener el número de página a mostrar y por tanto, el primer registro
$pagina = isset($_GET["pagina"])?$_GET["pagina"]:1;
//Primer regsitro
$inicio = ($pagina 1) * PAGINA;

//Obtener total de registros en la tabla
$sql "SELECT clase1, clase2, fechaclase FROM comparadorEvento GROUP BY 1,2,3 ORDER BY fechaInicio ASC;";
$res FquerySql($sql);
$num_total_registros mysql_num_rows($res);
//Liberar recursos
$free mysql_free_result($query);
//El total de páginas
$total_paginas ceil($num_total_registros PAGINA);

//La consulta con LIMIR
$sql "SELECT clase1, clase2, fechaclase FROM comparadorEvento GROUP BY 1,2,3 ORDER BY fechaInicio ASC LIMIT " $inicio "," PAGINA;
$res FquerySql($sql);

//Páginas y total de registros
echo "Total Registros: " $num_total_registros "<br>";
echo 
"Mostrando Pagina " $pagina " de " $total_paginas "<p>";
//Links para ANterior y siguiente
if($pagina 1)echo "<a href='{$_SERVER['PHP_SELF']}?pagina=".($pagina-1)."'>Anterior</a>&nbsp;";
if(
$pagina <= $total_paginas)echo "<a href='{$_SERVER['PHP_SELF']}?pagina=".($pagina+1)."'>Siguiente</a>"
Espero que puedan ayudarme, la verdad ando un poco perdido.
  #2 (permalink)  
Antiguo 07/05/2013, 09:04
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Paginado por semana

La paginación por semana dependerá de que tu select agrupe los resultados por semana.
Es decir, los valores de registros por página ya no valen, y las selects han de devolver resultados agrupados por semanas. Una vez que soluciones el tema de las selects vuelve a postear y seguimos desde allí.
Salu2
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 08/05/2013, 02:59
 
Fecha de Ingreso: marzo-2013
Mensajes: 18
Antigüedad: 11 años, 1 mes
Puntos: 1
Respuesta: Paginado por semana

Si pido el numero de la semana de cada dato me valdria?

Consulta:
Código PHP:
$sql "SELECT clase1, clase2, fecha, WEEK(fecha) FROM comparadorEvento GROUP BY 1,2,3 ORDER BY fechaInicio ASC;";
        
$res FquerySql($sql); 
Código PHP:
while($row mysql_fetch_array($res))
{
$nsemanp $row['WEEK(fechaInicio)'];

Algo asi?
  #4 (permalink)  
Antiguo 08/05/2013, 03:29
 
Fecha de Ingreso: marzo-2013
Mensajes: 18
Antigüedad: 11 años, 1 mes
Puntos: 1
Respuesta: Paginado por semana

E conseguido algo os dejo el codigo por si a alguien le interesa, (No esta acabado pero funciona).

Código PHP:
$hoy date("Y-m-d H:i:s");
$nseman date('W'strtotime($hoy));

$sql "SELECT clase1, clase2, fecha, WEEK(fecha) FROM clases  ORDER BY fecha ASC;";
$res FquerySql($sql);

define('SEMANA');
$semana = isset($_GET["semana"])?$_GET["semana"]:$nseman;
//Primer regsitro
$inicio = ($nseman) * SEMANA;

//Links para Anterior y siguiente
if($semana 1)echo "<a href='{$_SERVER['PHP_SELF']}?semana=".($semana-1)."'>Anterior</a>&nbsp;";
echo 
$semana;
if(
$semana <= $nseman)echo "<a href='{$_SERVER['PHP_SELF']}?semana=".($semana+1)."'> Siguiente</a><br>";
if(
$semana $nseman)echo "<br>"
Código PHP:
while($row mysql_fetch_array($res))
{
    
$nsemanp $row['WEEK(fecha)'];
    
    if (
$nsemanp == $semana)
    {
        
//Lo que queremos imprimir;
    
}

Supongo que sera una chapuza pero me funciona, muchas gracias a todos.

Etiquetas: mysql, paginado, registro, resultados, select, semana, sql, tabla
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 18:41.