Hola "ramiro_md", "cuasatar" y "Pherenick", Muchas gracias por vuestras respuestas....
Ramiro_md: Lo estoy haciendo manual y si que tengo un LIMIT indicado, ahora lo podrás ver graficamente.
Cuasatar: Gracias por tu gran explicación, me he centrado en tu respuesta haciendo pruebas... pero me sigue sin mostrar los registros correspondientes a las paginas 2, 3....
Pherenick: Gracias por mostrar tu código, lo estudiaré y probaré posibles soluciones.
Centrandome en la respuesta de "Cuasatar", pongo el código sin modificar y la modificación que realizaria según su respuesta a ver si podeis indicarme que hago mal.
El código sin modificar es:
Código PHP:
<!------- Paginación (Empieza) ---------->
<div class="barrapaginacion">
<?php
//UNA VEZ QUE MUESTRO LOS DATOS TENGO QUE MOSTRAR EL BLOQUE DE PAGINACIÓN SIEMPRE Y CUANDO HAYA MÁS DE UNA PÁGINA
if($num_rows != 0)
{
$nextpage= $page +1;
$prevpage= $page -1;
echo '<ul id="paginacion">';
//SI ES LA PRIMERA PÁGINA DESHABILITO EL BOTON DE ANTERIOR, MUESTRO EL 1 COMO ACTIVO Y MUESTRO EL RESTO DE PÁGINAS
if ($page == 1)
{
echo '<li class="previous-off">« Anterior</li>';
echo '<li class="active">1</li>';
// Numero de paginas a mostrar
$num_paginas=7;
//limitando las paginas mostradas
$pagina_intervalo=ceil($num_paginas/2)-1;
// Calculamos desde que numero de pagina se mostrara
$pagina_desde=$page-$pagina_intervalo;
$pagina_hasta=$page+$pagina_intervalo;
// Verificar que pagina_desde sea negativo
if($pagina_desde<1)
{
// le sumamos la cantidad sobrante para mantener el numero de enlaces mostrados
$pagina_hasta-=($pagina_desde-1);
$pagina_desde=1;
}
// Verificar que pagina_hasta no sea mayor que paginas_totales
if($pagina_hasta>$lastpage)
{
$pagina_desde-=($pagina_hasta-$lastpage);
$pagina_hasta=$lastpage;
if($pagina_desde<1)
{
$pagina_desde=1;
}
}
for($i= $page+$pagina_desde; $i<= $pagina_hasta ; $i++)
{
echo '<li><a href="index.php?page=' . $i . '">' . $i . '</a></li>';
}
//Y SI LA ULTIMA PÁGINA ES MAYOR QUE LA ACTUAL MUESTRO EL BOTON SIGUIENTE O LO DESHABILITO
if($lastpage >$page )
{
echo '<li class="next"><a href="?page=' . $nextpage . '" >Siguiente »</a></li>';
}
else
{
echo '<li class="next-off">Siguiente »</li>';
}
}
else
{
//EN CAMBIO SI NO ESTAMOS EN LA PÁGINA UNO HABILITO EL BOTON DE ANTERIOR Y MUESTRO LAS DEMÁS
echo '<li class="previous"><a href="?page=' . $prevpage . '?>" >« Anterior</a></li>';
// Numero de paginas a mostrar
$num_paginas=7;
//limitando las paginas mostradas
$pagina_intervalo=ceil($num_paginas/2)-1;
// Calculamos desde que numero de pagina se mostrara
$pagina_desde=$page-$pagina_intervalo;
$pagina_hasta=$page+$pagina_intervalo;
// Verificar que pagina_desde sea negativo
if($pagina_desde<1)
{
// le sumamos la cantidad sobrante para mantener el numero de enlaces mostrados
$pagina_hasta-=($pagina_desde-1);
$pagina_desde=1;
}
// Verificar que pagina_hasta no sea mayor que paginas_totales
if($pagina_hasta>$lastpage)
{
$pagina_desde-=($pagina_hasta-$lastpage);
$pagina_hasta=$lastpage;
if($pagina_desde<1)
{
$pagina_desde=1;
}
}
for($i= $pagina_desde; $i<= $pagina_hasta ; $i++)
{
//COMPRUEBO SI ES LA PÁGINA ACTIVA O NO
if($page == $i)
{
echo '<li class="active">' .$i. '</li>';
}
else
{
echo '<li><a href="?page=' . $i . '" >' . $i . '</a></li>';
}
}
//SI NO ES LA ÚLTIMA PÁGINA ACTIVO EL BOTON SIGUIENTE
if($lastpage >$page )
{
echo '<li class="next"><a href="?page='. $nextpage .'">Siguiente »</a></li>';
}
else
{
echo '<li class="next-off">Siguiente »</li>';
}
}
}
echo '</ul>';
?>
</div>
<!------- Paginación (Termina) ---------->
En todos los lugares donde pongo el link de la página, debería ponerlo según me ha indicado Cuasatar, ¿verdad?, es decir, sustituir esto:
Código PHP:
echo '<li><a href="?page=' . $i . '" >' . $i . '</a></li>';
¿Por esto otro?
Código PHP:
for($i= $pagina_desde; $i<= $pagina_hasta ; $i++)
{
//COMPRUEBO SI ES LA PÁGINA ACTIVA O NO
if($page == $i)
{
echo '<li class="active">' .$i. '</li>';
}
else
{
echo '<li><a href="index.php?frase=' . $_GET['frase'] . '&provincia=' . $_GET['provincia'] . '&poblaciones=' . $_GET['poblaciones'] . '&form_id=218021&buscar=Buscar" >' . $i . '</a></li>';
}
}
Así puesto no me funciona... Por lo tanto si me pudieseis guiar... jeje
$_GET['frase'] : Lo recojo de un input del formulario
$_GET['provincia'] : Lo recojo de un option de un select del formulario
y $_GET['poblaciones'] : Lo recojo de un option de un select del formulario que e sun como anidado al select de provincia.
Espero sus respuestas!! muchas gracias por vuestro interés en ayudarme.
Un saludo.