Este es un script que ya se posteó antes. Le hice unos arreglos y ahora lo comenté para que se entienda xeactamente qué hace en cada momento. El original lo posteó dooky.
Esta vendría a ser la tercera vez que lo posteo "mejorado"(?)
Código PHP:
<?
//Paginar resultados
//Datos de conexión a la base
$servidor="localhost";
$usuario="tu_user";
$password="tu_password";
$base="tu_base";
$con = mysql_connect($servidor,$usuario,$password) or die (mysql_error());
mysql_select_db($base,$con) or die (mysql_error());
if (!isset($_GET['pg'])){
//Si no se ha hecho click a ninguna página específica
//O sea si es la primera vez que se ejecuta el script
//$pg es la pagina actual-->la página actual será la primera.
$pg = 1;
}else{
//Si se "pidió" una página específica:
//La página actual será la que se pidió.
$pg=$_GET['pg'];
}
//cantidad de resultados por página. Como ves, sólo cambias el número por el que quieras.
$cantidad=5;
//Calculamos desde qué registro se mostrará en esta página
//Recordemos que el conteo empieza desde CERO.
$inicial = ($pg-1) * $cantidad;
//Consulta SQL. Devuelve $cantidad registros empezando desde $inicial
$sql = "SELECT * FROM tabla ORDER BY titulo LIMIT $inicial,$cantidad";
$result = mysql_query($sql) or die (mysql_error());
//Imprimimos los registros de esta página.
while($array = mysql_fetch_array($result)) {
echo $array['titulo']."<br>";
}
//Contamos el total de registros en la BD (para saber cuántas páginas serán)
$sql2 = "SELECT COUNT(*) FROM tabla";
$result2 = mysql_query($sql2);
$total_registros = mysql_result($result2,0,0);//total de registros
//Calculamos el número de páginas (saldrá un decimal)
$pages = $total_registros / $cantidad;
//con ceil() redondeamos y $pages será el número total (entero) de páginas que tendremos
$pages = ceil($pages);
//Cerramos la conexión a la bd
$con=mysql_close($con);
//Creamos los enlaces de paginación
echo "<p>";
if ($pg != 1){
//Si no estamos en la página 1. Ponemos el enlace "anterior"
$url = $pg - 1;//será el número de página al que enlazamos
echo "<a href='".$_SERVER['PHP_SELF']."?pg=".$url."'>« Anterior</a> ";
}else {
//Si estamos en la página 1. El enlace "Anterior" no aparece.
echo " ";
}
//Enlaces a números de página:
for ($i = 1; $i<=$pages; $i++) {//Desde página 1 hasta última página ($pages)
if ($i == $pg) {
//Si el número de página es la actual ($pg). Se escribe el número, pero sin enlace
echo "<font face=Arial size=2 color=ff0000><b> $i </b></font>";
}else{
//Si es cualquier otro. Se escibe el enlace a dicho número de página.
echo "<a href='".$_SERVER['PHP_SELF']."?pg=".$i."'>".$i."</a> ";
}
}
if ($pg < $pages) {
//Si no estamos en la última página. Ponemos el enlace "Siguiente"
$url = $pg + 1;//será el número de página al que enlazamos
echo "<a href='".$_SERVER['PHP_SELF']."?pg=".$url."'>Siguiente »</a>";
}else {
//Si estamos en la última página. No aparece el enlace "Siguiente"
echo " ";
}
echo "</p>";
?>
Creo que está súper claro. Cualquier duda, acá mismo... y si encuentran errores... también acá... gracias.
Saludos
PD:También hay una clase muy buena de webstudio