Yo uso esto...
Donde va la consulta pongo esto:
Código PHP:
if (!isset($_GET['pg'])){
$pg = 0; // $pg es la pagina actual
}else{
$pg=$_GET['pg'];
}
$cantidad=20; // cantidad de resultados por página
$inicial = $pg * $cantidad;
$n="algo mas";
$terms = explode(" ", $n);
$select = "SELECT * FROM tabla WHERE ";
for(@reset($terms); list(, $term) = @each($terms); $select .= 'AND ') {
$select .= "campo LIKE '%$term%' ";
}
$select = substr($select,0,-5);
$select .="ORDER BY campo LIMIT $inicial,$cantidad";
$sql_bsq=mysql_query($select, $conn);
$contar = explode("LIMIT", $select);
$contarok= mysql_query($contar[0]);
$total_records = mysql_num_rows($contarok);
$pages = ceil($total_records / $cantidad);
y abajo de todo pongo esto para crear los enlances a las paginas siguientes y /o anteriores.
Código PHP:
if(mysql_num_rows($sql_bsq)>=$cantidad){
if ($pg <> 0){
$url = $pg - 1;
echo "<a href='".$_SERVER['PHP_SELF']."?acc=".$acc."&n=".$n."&pg=".$url."'>« Anterior</a> ";
}
for ($i = 0; $i<$pages; $i++) {
if ($i == $pg) {
echo $i;
}else{
echo "<a href='".$_SERVER['PHP_SELF']."?acc=".$acc."&n=".$n."&pg=".$i."'> ".$i." </a>";
}
}
if ($pg < $pages-1) {
$url = $pg + 1;
echo "<a href='".$_SERVER['PHP_SELF']."?acc=".$acc."&n=".$n."&pg=".$url."'>Siguiente »</a>";
}
}
espero te sirva