Código PHP:
<?
// Conexion a base de datos
function conectar()
{
if (!($link=mysql_connect("localhost", "xxxxxx", "xxxxxx")))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("xxxxx",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
function desconectar()
{
mysql_close();
}
$link=conectar();
// Fin conexion
/* Nombre de este script */
$nombre="prueba.php";
/* Numero total de registros (puede venir de Mysql)*/
//$total[0]=100;
$sql = "select * from textos";
$resultado = mysql_query($sql, $link);
$total[0] = mysql_num_rows($resultado);
//echo "<br>Total: ".$total[0]."<br>";
/* Numero de registros que se desean por pagina */
$pag_max=10;
/* Calculo de las paginas */
$pg_num=$total[0] / $pag_max; $pg_num=ceil($pg_num);
/* 'pg' se usa para diseminar el # de pagina que nos encontramos (al principio no existira) */
if (!isset($_REQUEST['pg']))
{
$pg = 1;
$in = 0;
}
else if($_REQUEST['pg'] == 1)
{
$in=0;
$pg=$_REQUEST['pg'];
}
else if($_REQUEST['pg']>1)
{
$pg = $_REQUEST['pg'];
$in = $pg - 1;
$in = $in * $pag_max;
}
?>
<html>
<head>
<title>Paginador</title>
</head>
<body>
<?
/*
Para el LIMIT de la consulta que arrojar los datos de la pagina se usa $in (desde) $pag_max (maximo a mostrar)
Ej: SELECT * FROM tabla LIMIT $in, $pag_max
*/
/* Paginador */
if(isset($pg))
{
$paginas_adelante =5; // Paginas que se veran adelante de actual
$paginas_atras =5; // Paginas que se veran detras de actual
/* Paginas */
//echo '<div style="border:1px solid black; float:left; padding:5px;">Página '.$pg.' de '.$pg_num.'</div><div style="float:left; width:5px;"></div>';
/* Primera pagina */
//if($pg>1)
//{
echo '<div style="border:1px solid black; float:left; padding:5px;"><a href="'.$nombre.'?pg=1"><b><<</b></a></div>';
//}
/* Atras */
if($pg>1)
{
if($pg>$paginas_atras)
{
$desde=$pg - $paginas_atras;
}
else
{
$desde=1;
}
$hasta=$pg - 1;
for($x=$desde; $x<=$hasta; $x++)
{
$query = "SELECT hk FROM textos WHERE pagina=$x ORDER BY id ASC";
$result = mysql_query($query);
if (mysql_error()) echo mysql_error()."<br>";
while ($rows = mysql_fetch_array($result))
{
$hkpage = $rows['hk'];
}
echo '<div style="float:left; padding:5px;"><a href="'.$nombre.'?pg='.$x.'"><b>'.$hkpage.'</b></a></div>';
}
}
/* Pagina actual */
$query = "SELECT hk FROM textos WHERE pagina=$pg ORDER BY id ASC";
$result = mysql_query($query);
if (mysql_error()) echo mysql_error()."<br>";
while ($rows = mysql_fetch_array($result))
{
$hkpage = $rows['hk'];
}
echo '<div style="border:1px solid black; float:left; padding:5px;"><a href="http://www.xxxxxx.com.ar/'.$hkpage.'">'.$hkpage.'</a></div>';
/* Adelante */
if($pg<$pg_num)
{
$limite=$pg+$paginas_adelante;
$s=$pg + 1;
for($x=$s; $x<=$limite; $x++)
{
if($x<=$pg_num)
{
$query = "SELECT hk FROM textos WHERE pagina=$x ORDER BY id ASC";
$result = mysql_query($query);
if (mysql_error()) echo mysql_error()."<br>";
while ($rows = mysql_fetch_array($result))
{
$hkpage = $rows['hk'];
}
echo '<div style="float:left; padding:5px;"><a href="'.$nombre.'?pg='.$x.'"><b>'.$hkpage.'</b></a></div>';
}
}
}
/* Ultima pagina */
if($pg<$pg_num)
{
echo '<div style="border:1px solid black; float:left; padding:5px;"><a href="'.$nombre.'?pg='.$pg_num.'"><b>>></b></a></div>';
}
}
// Aca listo los datos de la consulta
echo "<br><br>";
$query = "SELECT distinct(hk) FROM textos WHERE paginadep=$pg ORDER BY paginadep,id ASC";
$result = mysql_query($query);
if (mysql_error()) echo mysql_error()."<br>";
?>
</p>
<table width="300" border="1" cellspacing="0" cellpadding="0">
<?php
$link=1;
while ($rows = mysql_fetch_array($result))
{
if ($link==1) { $hklink=$rows['hk']; $link=0;}
$hk = $rows['hk'];
echo '<tr>';
echo '<td><div align="center">'.$hk.'</div></td>';
echo '</tr>';
}
// Fin listado
?>
</table>
</body>
</html>
este es un codigo que encontre que servia para html y lo modifiqu todo para usarlo con mysql
la idea es que la pagina actual el link sea como lo puse yo, apuntando a una web http
y las demas palabras funcionen con ajax para paginar el resultado