por eso mismo si quieres que te muestre 5 resultados de la búsqueda seria
Select * from tabla where busqueda="Algo" LIMIT 1,5
Eso te mostraria 5 resultados empezando por el primer resultado encontrado, para los botones anterior y siguiente solo tienes que modificar el LIMIT a -5 y +5 siempre teniendo presente que no te salgas de los resultados de la consulta.
Para la 1ª paginacion esta bien, pero para la 2ª,3ª... paginación como le digo que continue a partir del registro x.
Por ejemplo:
1ª pagina: del registro 1 al 5 => select * from tabla limit 5
2ª pagina: del registro 6 al 10 => ?
3ª pagina: del registro 6 al 10 => ?
aL iniciar offset siempre tiene que valer 1, asi que tienes que comprovarlo.
if($offset==0)
{
$offset=1;
}
en siguiente, si quieres que salte de 5 en 5 valdra 6, que es las suma de:
$salto = $offset + $limite;
por supuesto $limite vale siempre 5
Y en anterior sera la resta:
$salto = $offset - $limite;
asi que solo tienes que hacer:
Select * from tabla where busqueda="Algo" LIMIT $salto,$limite
Con este metodo ,tambien se puede hacer lo del numero de paginas, aunque eso es un poco mas complicado, te dejo que lo pienses que seguro que lo sacas, solo tienes que pensarlo un poco.
Y tambien $offset y $Limite pueden ser la misma variable solo tienes que hacer:
$salto = $salto + $limite;
Y $limite puedes hacerla una constante para que el usuario decida cuantos resultados quiere que le saque por pagina.
Como veras se puede depurar todo lo que quieras ;-))
Hola,hace unos dias tb tenia ese problema y busque aqui en los foroso y encontre el sigte codigo, claro debes adaptarlo a tu aplicacion pero es mas que nada cambiar nombres de variables y esas cosas
espero y te sirva , a mi me ha funcionado super bien..
saludos Marisol
* esto lo puse entre las etiquetas head
<?
if (empty($numreg)) {
$numreg = 0;
}
?>
*esto lo puse donde quiero que se liste la informacion
<?
$link = mysql_connect(host, userN, passW);
mysql_select_db(baseD, $link);
$SQL = "SELECT * FROM Tabla";
$result = mysql_query($SQL, $link);
$Total = mysql_num_rows($result);
$result = mysql_query($SQL . " LIMIT $numreg, 8", $link);
$Numpag = ceil($Total/8);
if ($row = mysql_fetch_array($result)) {
do {
?>
//codigo a repetir...impresión de datos..
<?
}while ($row = mysql_fetch_array($result));
}
else{
//¡No se ha encontrado ningun registro!
}
mysql_close($link);
?>
*y por ultimo, esto lo puse al final, para mostrar el numero de pagina...
Si te gusta esta funcion generica para mostrar lo tipico de:
Page Ant. 1 2 3 4 5 6 ... Page. Sig.
al final de un resultado de busqueda. Ahi va:
function navegadordepaginas($pagina_actual,$num_registros,$registrosporpagina,$nombre_pagina,
$color_fondo="white",$color_primerplano="black",
$mostrartotalencontrados,$textototalencontrados){