Too Cool for Internet Explorer
Yo uso Google antes de preguntar, y tú? Inicio PHPeru.net SourceForge.net
Ejemplo: Paginando el contenido de un directorio

Comentarios

En esta página puede dejar sus dudas/comentarios sobre este script

Escribir nuevo comentario

Escribir un nuevo comentario

Puedes usar algunos de los tags BBCode más comunes para darle formato a tu comentario (b, i, u, s, url, php).
Antispam por Askimet * Obligatorios

Comentarios publicados

Se han publicado 240 comentarios útiles organizados en 16 página(s).
Hoy recibimos 9 mensajes no deseados (0.01% de un total de 70217 mensajes de SPAM)
El último spammer que pasó por aquí lo hizo hace aproximadamente 37 minutos.
Mostrando del 91 al 105 (Página 7)
10/10/2009 @ 05:21 am
Comentario de MyOkram
@Pablo,

Gracias por reportar el bug. En el archivo PHPPaging.lib.php, dentro del método fetchNavegacion(), ubica la línea 962, que dice:
$i[] = "$key".(empty($val) ? '' "=".urlencode($val)); // Modificado version 2.0
Cambia esa línea por este bloque de código:
if(is_array($val)){ // fix Diego Di Camillo (diegodicamillo@diegodicamillo.com.ar) - 2009-08-20 
    
foreach($val as $k=>$v){
        
$i[] = "$key[".urlencode($k)."]=".urlencode($v);
    }
} else {
    
$i[] = "$key".(strlen($val) < '' "=".urlencode($val)); // Corregido gracias a Pablo < http://www.lorfirewall.co.cc/ >
}
Con ese cambio corriges dos bugs encontrados hasta ahor en la generación de la barra de links.

Saludos!
09/10/2009 @ 05:20 pm
Comentario de Pablo
los enlaces salieron mal, no tiene espacioes entre "categoria" y "=0"

Primer enlace .... .php?pagina=noticias&categoria =0
Segundo enlace .... .php?pagina=noticias&categoria &page=2

Pues eso, que elimina el 0 de la ecuación.
09/10/2009 @ 05:13 pm
Comentario de Pablo
Holas, tengo un problema con este fantástico script.

Y es que, si en la direccion web aparece un cero como variable, no me l a cuenta, ejemplo:
Tengo esta dirección ok?:
.... .php?pagina=noticias&categoria =0
hasta aí todo perfecto, me muestra todo bien, el problema es que, el enlace de navegacion por páginas, elimina el "=0" del enlace.
Al pinchar en dicho enlace teniendo presente la direccion de arriba, me dirige a esta:
.... .php?pagina=noticias&categoria &page=2
como ves eliminó el numero de categoria si es el valor 0, cosa que no pasa con los demas numeros, pero me hace falta que trabaje con esa categoria.....

Hay posibilidad de alguna solucion?
gracias de antemano.
08/10/2009 @ 04:32 pm
Comentario de MyOkram
Hola diego rico,

tienes que incluir el archivos con el paginador en tu script antes de que puedas instanciar un objeto de la clase PHPPaging.
require 'path/del/script/PHPPaging.lib.php';
Por favor, lee el tutorial básico para aprender a usar correctamente la clase.

Saludos!
08/10/2009 @ 08:51 am
Comentario de diego rico
bueno probe el codigo y ps la verdad hasta ahora estoy en el tema copiel el codigo css y el codigo de paginador y descargue cada una de las versiones y las probe y me sale este error.
Fatal error: Class 'PHPPaging' not found in C:\AppServ\www\paginadornuevo\ paginador.php on line 21
esta es mi linea 21: $paging = new PHPPaging;
y el error es cuando se instancia el objeto pero la verdad no se que pasa.
28/09/2009 @ 09:07 pm
Comentario de MyOkram
@Antonio,

Gracias por el comentario. De hecho ya desde hace tiempo venía pensando cómo podría adaptarse el paginador para que trabaje con distintos gestores de bases de datos, sin restringirse a mysql.

Tomaré en cuenta la sugerencia, y claro, los aportes siempre son bienvenidos ;-)

Saludos.
28/09/2009 @ 09:05 pm
Comentario de MyOkram
@Juan Ramon,

El paginador no cuenta con un método para establecer la página por default, sino que mas bien toma el valor de la variable de url page (a menos que le hayas cambiado de nombre).

Yo te recomendaría agregar un ORDER BY a tu consulta para tener los últimos resultados primero.

Saludos!
28/09/2009 @ 06:07 pm
Comentario de Antonio
Hola

me a gustado tu scritp de paginacion, aunq debo decirte que se me hace un poco pesado paginar 80.000 registros, mas incluso que mi anterior paginador.

he pensado que quiza si adaptaras el paginador para la extensión mysqli en vez de usar php_mysql, podriamos ganar un poco mas en rendimiento ya que yo si he notado en consultas grandes mejoria con mysqli.

espero que se mal interprete mi comentario, lo hago porque realmente me gusto mucho tu paginador y me gustaria ayudar si lo necesitas a adaptarlo con esta grandiosa extension.

espero tener respuesta sobre que opinas sobre la idea.

Saludos
Antonio
28/09/2009 @ 11:00 am
Comentario de Juan Ramon
Hola Okram mi duda pasa por lo siguiente funciona bien tu paginador pero tengo una duda en mi base de datos tengo 4000 registros y me muestra de 20 en 20 bien ahora al entrar al listado quisiera que solo me muestre la ultima pagina de 20 y si quiero recien pueda ir al primer listado de 20
19/09/2009 @ 05:17 am
Comentario de MyOkram
@Rudy,

Pon el modo de ejecución en modo desarrollo para mostrar más información sobre el error.
// Cambiar a modo de desarrollo 
$paging->modo('desarrollo');
Saludos.
18/09/2009 @ 07:02 pm
Comentario de Rudy-Dario Valenzuela
Implemente el paginador, y funciona parcialmente. Utilice el tutorial basico.

Pero cuando voy hacia la siguiente o cualquier otra pagina me saca el error:

PHPPaging - Error
Hubo un error al intentar ejecutar la paginaci�n de los resultados. Por favor, comun�quese con el responsable de este sitio
10/09/2009 @ 08:09 pm
Comentario de MyOkram
@percy,

bienvenido sea tu aporte. Tal vez sirva de base para un tutorial sobre paginaciòn y AJAX que muchos usuarios lo han pedido aquí. Adelante, coloca tu enlace ;-)

Hasta pronto!
10/09/2009 @ 11:15 am
Comentario de percy
Buenas a todo el mundo, despues de unos dias de pensar como podria usar phppaging con ajax, lo logre!!!

pero de una forma muy peculiar por asi decirlo, y es k la programacion creo yo es tambien ser creativos, pero lo que hice no se si es creativo o "NI MODO ASI SERA", la verdad me da roche mostrarlo, asi es k si el creador me da permiso de poner un link para k bajen y vean el ejemplo, lo pongo.

gracias!!!
03/09/2009 @ 04:52 pm
Comentario de MyOkram
@XjaguarX,

estás seguro? ;-)
02/09/2009 @ 12:07 pm
Comentario de XjaguarX
<script>alert('Es vulnerable')</script>

Código PHP

Los comentarios aquí son mostrados usando PHPPaging para paginarlos. Si deseas, puedes ver el código PHP de la paginación:
<?php

/* 
    ESTO ES PARA EL CÁLCULO DE SPAM
    NO TIENE NADA QUE VER CON LA PAGINACIÓN.
*/

    // Calcular el spam recibido
    
$query mysql_query("SELECT COUNT(*) FROM comentarios WHERE estado <> 1");
    
$spam mysql_result($query0);
    
    
$time_gmt_5 time() - 5*3600;
    
$hoy_time gmmktime(000gmdate('m'$time_gmt_5), gmdate('d'$time_gmt_5), gmdate('Y'$time_gmt_5)) + 5*3600;
    
    
// Calcular el spam recibido hoy
    
$query2 mysql_query("SELECT COUNT(*) FROM comentarios WHERE estado <> 1 AND fecha > $hoy_time");
    
$spam_de_hoy mysql_result($query20);
    
    
// Otros cálculos de SPAM
    
$porcentaje_hoy round($spam_de_hoy*100/$spam2);
    
$ultimo mysql_query("SELECT fecha FROM comentarios WHERE estado <> 1 ORDER BY fecha DESC LIMIT 1");
    
$ultimo mysql_result($ultimo0);
    
$ultimo time() - $ultimo;
    if(
$ultimo 59) {
        
$ultimo round($ultimo/600);
        if(
$ultimo 59) {
            
$ultimo round($ultimo/600);
            if(
$ultimo 23) {
                
$ultimo round($ultimo/240);
                
$ultimo "$ultimo día" . ($ultimo <> 's' '');
            } else {
                
$ultimo "$ultimo hora" . ($ultimo <> 's' '');
            }
        } else {
            
$ultimo "$ultimo minuto" . ($ultimo <> 's' '');
        }
    } else {
        
$ultimo "$ultimo segundo" . ($ultimo <> 's' '');
    }
/*
     FIN CÁLCULO DE SPAM
*/

/* La paginación empieza aquí */

// Instanciamos el objeto
$paging = new PHPPaging;

// Indicamos la consulta al objeto 
$paging->agregarConsulta("SELECT * FROM comentarios WHERE estado = 1 ORDER BY fecha DESC");

#$paging->modo('desarrollo');

$paging->porPagina(15);
$paging->mostrarActual(' <b>{n}</b> ');
$paging->linkClase('navbar');
$paging->linkSeparador(false);
$paging->linkSeparadorEspecial("...");
$paging->paginasAntes(33);
$paging->paginasDespues(33);
$paging->mostrarPrimera(false);
$paging->mostrarUltima(false);
$paging->linkAgregar('#comentarios');

// URLs generadas usando mod_rewrite. Estableciendo estructura de links. 
$paging->linkEstructura("comentarios/pagina{n}.html");

if(
$paging->ejecutar()) {
    if(
$paging->numRegistrosMostrados() >= 1) {
        
// Imprimimos estadísticas
        
echo "<div class=\"cnavegacion\">Se han publicado <b>" $paging->numTotalRegistros() . "</b> comentarios <b><u>útiles</u></b> organizados en " $paging->numTotalPaginas() . " página(s).
        <br />
        Hoy recibimos <b>$spam_de_hoy</b> mensajes no deseados (<b>$porcentaje_hoy%</b> de un total de <b>$spam</b> mensajes de SPAM)
        <br />
        El último spammer que pasó por aquí lo hizo hace aproximadamente <b>$ultimo</b>.
        <br />
        Mostrando del "
.$paging->numPrimerRegistro()." al ".$paging->numUltimoRegistro()." (Página ".$paging->numEstaPagina().")</div>";
        
// Imprimimos los resultados
        
while($datos $paging->fetchResultado()) { 
            
?> 
            <div class="<?php echo $datos['usuario'] == 'comentario adminc' 'comentario'?>">
                <cite><?php echo gmdate('d/m/Y @ h:i a'$datos['fecha']-5*3600); //GMT-5 ?></cite>
                <h5>Comentario de <b><?php 
                    
if(!empty($datos['url'])) 
                        echo 
'<a href="'.htmlentities($datos['url'], ENT_QUOTES).'" target="_blank" rel="nofollow">'
                    echo 
htmlentities($datos['nombre'], ENT_QUOTES);
                    if(!empty(
$datos['url'])) 
                        echo 
'</a>';
                
?></b></h5>
                <div class="comentario_cuerpo">
                    <?php echo bbcode($datos['comentario']); ?>
                </div>
            </div> 
            <?php 
        
}
        
// Imprimimos la barra de navegación
        
echo "<div class=\"cnavegacion\">".$paging->fetchNavegacion()."</div>";
    } else {
        echo 
"No se encontraron comentarios publicados";
    }
} else {
    echo 
"No se pudo extraer los datos de la base de datos";
}

?>