Foros del Web » Programando para Internet » PHP »

Paginar Siguiente-Anterior con PHP

Estas en el tema de Paginar Siguiente-Anterior con PHP en el foro de PHP en Foros del Web. Hola a todos, queria saber si alguien sabe de algun script para paginar de esta manera, digamos que estoy sobre el articulo 10 y quiero ...
  #1 (permalink)  
Antiguo 08/04/2011, 14:10
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 9 meses
Puntos: 5
Paginar Siguiente-Anterior con PHP

Hola a todos, queria saber si alguien sabe de algun script para paginar de esta manera, digamos que estoy sobre el articulo 10 y quiero ir al 11 entonces apreto "Siguiente".
Estuve buscando paginadores pero me aparecen los que dan por ejemplo, 20 resultados por pagina ... de esos no quiero xD(Ya tengo implementado).
Intenté lo de siguiente y anterior enviando por get el mismo valor + 1 pero digamos que no funciona si estoy en la noticia 10 y la 11 esta borrada, entonces si estoy en la 10 y pongo "siguiente" va a la 11 que no existe y cuak!.

Alguna mano? si conocen de algun script o alguna manera para hacer esto, estoy medio apurado :P.


Muchas gracias!
  #2 (permalink)  
Antiguo 08/04/2011, 14:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Paginar Siguiente-Anterior con PHP

pero si ya tienes una paginación complicada, yo no veo el problema de hacer algo aún mas sencillo...

para evitar el problema de que la siguiente pagina no existe es muy sencillo, primero pregunta la cantidad paginas a mostrar, y de acuerdo a ese numero simplemente comparas, si la actual es menor a el total muestra el enlace Siguiente, si no... pues no!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 08/04/2011, 14:23
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: Paginar Siguiente-Anterior con PHP

En este sitio hay una clase para paginar y puedes hacer lo que tu quieres (cambiadole el > por siguiente claro) http://objetivophp.com/?p=101
__________________
Aprendiendo!!!
  #4 (permalink)  
Antiguo 08/04/2011, 23:09
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 9 meses
Puntos: 5
Respuesta: Paginar Siguiente-Anterior con PHP

Intenté esto que encontré pero sin embargo si estoy en el registro 10 y el 11 esta borrado, no puedo ir al 12 (estando en el 10)


En el header:
Código PHP:
Ver original
  1. <?php // recogemos los valores a mostrar
  2.     $siguiente =  $_GET['mascota'] + 1;
  3.     $anterior = $_GET['mascota'] - 1;
  4.  
  5.     // las consultas
  6.     $entrada_siguiente = "SELECT id FROM fotos WHERE id = '$siguiente'";
  7.     $query_siguiente = mysql_query($entrada_siguiente, $db) or die (mysql_error());
  8.     $siguienteID = mysql_fetch_assoc($query_siguiente);
  9.    
  10.     $entrada_anterior = "SELECT id FROM fotos WHERE id = '$anterior'";
  11.     $query_anterior = mysql_query($entrada_anterior, $db) or die (mysql_error());
  12.     $anteriorID = mysql_fetch_assoc($query_anterior);
  13.     ?>

Y para mostrar el Siguiente|Anterior uso esto:

Código PHP:
Ver original
  1. <div id="AntSig">
  2. <?php
  3. // mostramos los resultados
  4.         if(!empty($anteriorID['id'])){
  5.             echo "<center><a href='verrecuerdo.php?mascota=$anteriorID[id]'><span class='vinculo'>Anterior</span></a>&nbsp&nbsp&nbsp";
  6.         }
  7.         if(!empty($siguienteID['id'])) {
  8.             echo "<a href='verrecuerdo.php?mascota=$siguienteID[id]'><span class='vinculo'>Siguiente</span></a></center>";
  9.  
  10.         }
  11. ?>
  12. </div>

Vi por ahí que este script me permitía hacer lo que quiero hacer, pero sin embargo no :/ jajaja, me vuelve loco este tema, help plz xD, ¿Qué cosas tendria que modificar? necesito una mano super grande ya que intenté modificar algunos script de paginación como el que me expusiste anacona16 pero no tuve exito, lo mas cerca que llegué fue este script ...
  #5 (permalink)  
Antiguo 08/04/2011, 23:27
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: Paginar Siguiente-Anterior con PHP

La clase que han creado en Obejivo PHP es de verdad muy buena, he aqui la foma de ponerlo a funcionar:

Incluyes la clase, y tu archivo de conexion

Código PHP:
Ver original
  1. $consulta = mysql_query("SELECT * FROM tabla");
  2.     $filas = mysql_num_rows($consulta);
  3.     $cantRegistros  = $filas;
  4.    
  5.     $pgnActual = isset($_GET['pgn'])? $_GET['pgn'] : 0;
  6.    
  7.     $pag = new Paginador();
  8.    
  9.     $pag->setCantidadRegistros(10);
  10.     $datos = $pag->paginar($pgnActual, $cantRegistros);
  11.     $inicio = $pgnActual * 10; 
  12.     $consulta = mysql_query("SELECT * FROM tabla LIMIT $inicio, 10");

ahi tienes la consulta y aqui el modo de uso de los enlaces

Código PHP:
Ver original
  1. <?php
  2. if ($datos) :
  3.     echo 'Pagina: ' . ($_GET['pgn'] + 1) . ' de ' . $pag->getCantidadPaginas()."</span>";
  4.     foreach ($datos as $enlace) :
  5.     ?>
  6.     <a href="?pgn=<?php echo $enlace['numero']; ?>" title="<?php echo $enlace['title']; ?>"><?php echo $enlace['vista']; ?></a>
  7. <?php endforeach;?>
  8. <?php endif;?>

Prueba y nos cuentas.
__________________
Aprendiendo!!!
  #6 (permalink)  
Antiguo 09/04/2011, 02:33
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 9 meses
Puntos: 5
Respuesta: Paginar Siguiente-Anterior con PHP

Claro, entiendo xD, pero con eso obtengo 1 2 3 4 5 (a partir de 0), mi probleama es otro, yo por ejemplo tengo www.misitio.com/vernoticia.php?noticia=10 y digamos que noticia es $_GET y necesito usar a noticia para paginar tmb ... digamos, si caigo en noticia y quiero ver la noticia 9, quiero usar un mini paginador Anterior | Siguiente para mostrar la 9, 8, 7 ... o ... 11 12 13 ... estando en la 10.
(logré hacer eso con el codigo que expuse, pero cuando estoy en la 10 y el 11 no existe, ver el 12 es imposible)

Última edición por VbOkonly; 09/04/2011 a las 02:56
  #7 (permalink)  
Antiguo 09/04/2011, 11:37
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: Paginar Siguiente-Anterior con PHP

Deberias de comprobar si la siguiente noticia existe si no pues sumarle +1, como lo compruebas pues eso de pende de la tabla como obtengas las noticias. Es lo que se me ocurre.
__________________
Aprendiendo!!!
  #8 (permalink)  
Antiguo 09/04/2011, 11:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Paginar Siguiente-Anterior con PHP



Cita:
Iniciado por pateketrueke Ver Mensaje
para evitar el problema de que la siguiente pagina no existe es muy sencillo, primero pregunta la cantidad paginas a mostrar, y de acuerdo a ese numero simplemente comparas, si la actual es menor a el total muestra el enlace Siguiente, si no... pues no!!
creo que eso se puede hacer hasta mentalmente, ya si uno no es capaz de verlo tenemos serios problemas conceptuales...

hay que recordar que, primero se resuelve el problema, y luego se escribe el código... ¡no al revés!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 09/04/2011, 22:38
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 9 meses
Puntos: 5
Respuesta: Paginar Siguiente-Anterior con PHP

No entiendo como generar ese codigo, todavia no llegué a un nivel intelectual que pueda procesar esa información, me ayudas?, ya busqué por todos lados y no obtuve resultados ...
  #10 (permalink)  
Antiguo 10/04/2011, 01:59
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Paginar Siguiente-Anterior con PHP

Que tal VbOkonly,

Si el id es autoincrement, la solución es bastante simple, se suele hacer utilizando <>, limit y el id actual, los select's serian algo así:

Código PHP:
Ver original
  1. $prev = "SELECT id FROM fotos WHERE id < $current ORDER BY id DESC LIMIT 1" ;

Código PHP:
Ver original
  1. $next = "SELECT id FROM fotos WHERE id > $current ORDER BY ID ASC LIMIT 1";

$current seria el id actual.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #11 (permalink)  
Antiguo 10/04/2011, 08:52
(Desactivado)
 
Fecha de Ingreso: enero-2011
Mensajes: 293
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: Paginar Siguiente-Anterior con PHP

Esta chica me da miedo anacona16 lo que a echo santo sielo de miedo el codigo ,donde carajo aprendio? O_O.

El Codigo del principio la idea de restarle y sumarle que practico

Pero para los numero as la consulta 0,10 y paginalo consige el y de y con if le pones la condicion si se le suma 10 mas puedes hacerlo de muchas maneras inprovisando , .

Eso que tienes arriba es una iniciativa muy buena ,Como en espartacus Guiate por la erida xD
  #12 (permalink)  
Antiguo 11/04/2011, 13:28
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: Paginar Siguiente-Anterior con PHP

Cita:
Esta chica me da miedo anacona16 lo que a echo santo sielo de miedo el codigo ,donde carajo aprendio? O_O.
Oye si te refieres a mi no soy una chica, que no ves la foto xD!!!

Estoy aprendiendo POO estas clases como dije antes no las hice yo, las hicieron en objetivophp.com

VbOkonly en objetivophp.com han adaptado la clase para que funciones como tu lo necesitas, hechale un vistaso, esta facil de implementar http://objetivophp.com/?p=183
__________________
Aprendiendo!!!
  #13 (permalink)  
Antiguo 11/04/2011, 14:59
(Desactivado)
 
Fecha de Ingreso: enero-2011
Mensajes: 293
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: Paginar Siguiente-Anterior con PHP

pos pareces una chica de pelo corto ,,jajajaja
  #14 (permalink)  
Antiguo 11/04/2011, 15:19
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: Paginar Siguiente-Anterior con PHP

Yo creo que ya deberias darle un poco con el respeto nooo!!!
__________________
Aprendiendo!!!

Etiquetas: paginar
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 05:03.