Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/08/2009, 22:57
easy
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 5 meses
Puntos: 2
compartir mi paginacion

Estimado Amigos,

He estado jugando un poco con algunas paginaciones y he sacado esta de entre varias versiones. Tiene poco codigo y funciona muy bien, solo ponganle ajustes css y se les verá muy pero muy bien.

Espero les sirva

Código PHP:
$conn mysql_connect("localhost""usuario""password") or die(mysql_error());
mysql_select_db("bd"$conn) or die(mysql_error());

// limito la busqueda
$limit 10;

//examino la página a mostrar y el inicio del registro a mostrar
$pagina $_GET['p'];
if (!
$pagina) {
    
$inicio 0;
    
$pagina=1;
}
else {
    
$inicio = ($pagina 1) * $limit;
}


//muestro el número total de campos que hay en la tabla con esa búsqueda
$ssql "SELECT * FROM tabla ";
$rs mysql_query($ssql);
$num_total_registros mysql_num_rows($rs);
//calculo el total de páginas
$total_paginas ceil($num_total_registros $limit);
//pongo el número de registros total, el tamaño de página y la página que se muestra
echo "Número de registros encontrados: " $num_total_registros "<br>Mostrando la página: " $pagina "/" $total_paginas "<br><br>";


//realizamos la busqueda y limitamos la cantidad a mostrar
$sql2 "SELECT * FROM tabla ORDER BY id LIMIT " .$inicio"," .$limit"";
$query2 mysql_query($sql2);
while (
$rows mysql_fetch_array($query2)) {
echo 
''.$rows['titulo']. '<br> '.$rows['descripcion'].'<br><br>';
}
echo 
'<br>';


// aqui empieza la paginacion

// restamos en uno el $id
$idrest $pagina-1;

// aumentamos en uno el $id
$idadd $pagina+1;

// definimos la cantidad de paginaciones a mostrar

// definimos la url previous
        
if ($pagina == 1) { 
        echo 
'&lt;Previous ';
        } else {
        echo 
'<a href="index.php?p='.$idrest.'">&lt;Previous</a> ';
        }

// definimos la cantidad de registros definidos por rango
//rango
$rango 8;
//lo definimos
$rangoizq max(1,$pagina-(($rango-1)/2));
$rangoder min($total_paginas$pagina+(($rango-1)/2));
if ((
$rango $rangoizq) < ($rango 1)) {
    if (
$rangoizq == 1) {
        
$rangoder min($rangoizq + ($rango-1), $total_paginas);
        } else {
        
$rangoizq max($rangoder - ($rango -1), 0);
        }
    }

        
//defino el next
        
if ($rangoizq 1) {
            echo 
'...';
        } else {
            echo 
'&nbsp;&nbsp;';
        }
        for (
$i 1$i <= $total_paginas$i++) {
            if (
$i == $pagina) {
                echo 
$i;
            } else {
                if (
$rangoizq <= $i && $i <= $rangoder) {
                    echo 
' [<a href="index.php?p='.$i.'">' .$i'</a>] ';
                }
            }
            }
            if (
$rangoder $total_paginas) {
                echo 
'...';
            } else {
                echo 
'&nbsp;&nbsp;';
            }
    if ((
$num_total_registros - ($limit $pagina)) > 0) {
        echo 
' <a href="index.php?p='.$idadd.'">Next &gt;</a>';
    } else {
        echo 
' Next &gt;';
    } 
Saludos,