Foros del Web » Programando para Internet » PHP »

Paginacion

Estas en el tema de Paginacion en el foro de PHP en Foros del Web. Vuelvo con este tema ahora quiero que me muestre todas las paginas y he pensado esto @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php $anterior = ...
  #1 (permalink)  
Antiguo 22/08/2012, 06:18
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 9 meses
Puntos: 27
Paginacion

Vuelvo con este tema ahora quiero que me muestre todas las paginas y he pensado esto

Código PHP:
Ver original
  1. <?php
  2. $anterior = $_GET['pagina'] - 1;
  3. $siguiente = $_GET['pagina'] +1;
  4.  
  5. if($_GET['pagina'] <= "0"){
  6.     echo "<div class='contenido'><div class='text'>
  7.    <a href='0'><</a>
  8.    <a href='$siguiente'>></a>
  9.    Pagina: $_GET[pagina]
  10.    </div></div><br>";
  11. }else{
  12.     echo "<div class='contenido'><div class='text'>
  13.    <a href='$anterior'><</a>
  14.    <a href='$siguiente'>></a>
  15.    Pagina: $_GET[pagina]
  16.    </div></div><br>";
  17. }
  18. ?>

Resultado:
< > Pagina: 0

Y quiero que entre los link < y > ponga 1,2,3,4 hasta las paginas que haya pero yo no se como hacer para saber las paginas que tengo.

Yo quiero que salga: (Si tengo 1 pagina)
< 1 > Pagina: 0
(Si tengo 2 pagina).
< 1 2 > Pagina: 0
(y asin sucesivamente)
  #2 (permalink)  
Antiguo 22/08/2012, 06:38
Avatar de Karmac  
Fecha de Ingreso: agosto-2011
Ubicación: Bilbao
Mensajes: 196
Antigüedad: 12 años, 8 meses
Puntos: 34
Respuesta: Paginacion

Para saber las páginas que tienes obten todos los elementos (por ejemplo entradas de post) y dividelas entre el número de elemementos por página.

Código PHP:
Ver original
  1. <?php
  2. $elementos = 40;
  3. $por_pagina = 10;
  4.  
  5. $paginas = $elementos / $por_pagina; // 4
  6. ?>

Luego lo imprimes con un bucle. Saludos.
  #3 (permalink)  
Antiguo 22/08/2012, 06:45
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 9 meses
Puntos: 27
Respuesta: Paginacion

Claro eso tambien lo he pensado yo pero cada vez que la jente haga 10 temas nuevo en mi web que tengo que ir cambiando el codigo php yo digo algo automatico
  #4 (permalink)  
Antiguo 22/08/2012, 07:37
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Respuesta: Paginacion

Hacer una paginación no es dificil pero si que lleva su tiempo. Puedes buscar por google ejemplos y adaptar alguno. Pero la idea es algo así.

Como te han dicho, cuentas los resultados totales y divides por los que pones por pagina.

$paginas = $totales -6;

Ya sabes cuantas paginas hay en total. Por tanto.

si $paginas == 1
- 1 -
sino
si $paginas == 2
- 1, 2 -

etc etc etc

Y también tienes que controlar que si está en la primera página no ponga ningún numero antes, si estás en la última o si estás en la del medio, etc etc. Vas a tener que declarar unas cuantas variables.

Lleva su tiempo.
  #5 (permalink)  
Antiguo 22/08/2012, 07:49
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: Paginacion

Cita:
Iniciado por PepeF Ver Mensaje
Claro eso tambien lo he pensado yo pero cada vez que la jente haga 10 temas nuevo en mi web que tengo que ir cambiando el codigo php yo digo algo automatico
No dices que tipo de dato es el que quieres paginar (de donde procede), pero a menos que los datos sean estáticos (no cambiara el total de items a paginar) todas las paginaciones son dinámicas y "automáticas", y como te han dicho, forzosamente debes dividir el total de items a paginar entre el numero de items a mostrar por página, mas aparte redondear hacia arriba el resultado, ya que la división puede arrojar un numero con decimales....
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #6 (permalink)  
Antiguo 22/08/2012, 08:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Paginacion

Si estas usando una base de datos puedes tirar un query como SELECT COUNT(*) para contar cuantos elementos hay en total en la base de datos y así obtener el número de paginas.

Saludos.
  #7 (permalink)  
Antiguo 22/08/2012, 08:33
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 9 meses
Puntos: 27
Respuesta: Paginacion

Cita:
Iniciado por GatorV Ver Mensaje
Si estas usando una base de datos puedes tirar un query como SELECT COUNT(*) para contar cuantos elementos hay en total en la base de datos y así obtener el número de paginas.

Saludos.
Si eso ya lo sabia mira hice esto:

Código PHP:
Ver original
  1. <?php
  2. $noticias = mysqli_query($conexion, "SELECT COUNT(*) noticias FROM noticias WHERE Estado = 'Activado'");
  3. $noti = mysqli_fetch_array($noticias);
  4. $calcular = $noti['noticias'] / 10;
  5. $noticias = round($calcular,0);
  6. ?>
Y ahora cuando me da el numero de paginas que tengo como ago para que salga 1 , 2 y 3 y no salga del tiron 3

Solucionado lo hice con un for.

Última edición por PepeF; 22/08/2012 a las 08:39
  #8 (permalink)  
Antiguo 22/08/2012, 10:15
Avatar de Karmac  
Fecha de Ingreso: agosto-2011
Ubicación: Bilbao
Mensajes: 196
Antigüedad: 12 años, 8 meses
Puntos: 34
Respuesta: Paginacion

Cita:
Iniciado por PepeF Ver Mensaje
Si eso ya lo sabia mira hice esto:

Código PHP:
Ver original
  1. <?php
  2. $noticias = mysqli_query($conexion, "SELECT COUNT(*) noticias FROM noticias WHERE Estado = 'Activado'");
  3. $noti = mysqli_fetch_array($noticias);
  4. $calcular = $noti['noticias'] / 10;
  5. $noticias = round($calcular,0);
  6. ?>
Y ahora cuando me da el numero de paginas que tengo como ago para que salga 1 , 2 y 3 y no salga del tiron 3

Solucionado lo hice con un for.
Bucle for.
No uses round, redondea siempre hacia arriba con ceil();
Saludos.
  #9 (permalink)  
Antiguo 22/08/2012, 11:41
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 9 meses
Puntos: 27
Respuesta: Paginacion

ok gracias.

Etiquetas: paginacion
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 21:44.