tengo un problema con mi paginador y es un tanto extraño... porque le he puesto como limite mostrarme solo 2 registros por pagina y es como si ni leyera esa instruccion... pues me muestra toooodos los registros en la primera pagina y de echo el paginador muestra mas numeros despues del 1... es decir 2,3,4,5,6... como si es que hubiera mas registros que hicieran necesario el uso de mas paginas... de verdad me esta comiendo el error
aca les dejo el código a ver si me ayudan a encontrar el fallo que se que mucha gente aca tiene experiencia y un muy buen ojo...
Código PHP:
<!-- PHP PARA LA PAGINACION -->
<?php
/*
Place code to connect to your DB here.
*/
include("php/conexiondb.php"); // include your code to connect to DB.
$tbl_name="post"; //your table name
// How many adjacent pages should be shown on each side?
$adjacents = 2;
/*
Primero obtenemos el numero total de filas en la tabla.
*/
$query = "SELECT COUNT(*) as num FROM $tbl_name";
$total_pages = mysql_fetch_array(mysql_query($query));
$total_pages = $total_pages['num'];
/* variables a utilizar para la consulta. */
$targetpage = "etiquetas.php"; //nombre del archivo
$limit = 2; //Cantidad limite de registros a mostrar por cada pagina
$page = "http://localhost/blog/etiquetas.php";
if(isset($_GET["page"])){
$page = (int)$_GET["page"];
$start = ($page - 1) * $limit; //primer item a mostrar
}else{
$start = 0; //Si no hay registros existentes, empezar pagina en 0
}
/* Realizamos y obtenemos datos de la consulta. */
$sql = mysql_query("SELECT * FROM $tbl_name ORDER BY id DESC LIMIT $start, $limit");
//$result = mysql_query($sql);
/* Setup page vars for display. */
if ($page == 0) $page = 1; //if no page var is given, default to 1.
$prev = $page - 1; //previous page is page - 1
$next = $page + 1; //next page is page + 1
$lastpage = ceil($total_pages/$limit); //lastpage is = total pages / items per page, rounded up.
$lpm1 = $lastpage - 1; //last page minus 1
/*
Now we apply our rules and draw the pagination object.
We're actually saving the code to a variable in case we want to draw it more than once.
*/
$pagination = "";
if($lastpage > 1)
{
$pagination .= "<div class=\"pagination\">";
//previous button
if ($page > 1)
$pagination.= "<a href=\"$targetpage?page=$prev\"> <span class=\"icon-reply\" alt=\"Atras\"> </span></a>";
else
$pagination.= "<span class=\"icon-reply\" alt=\"Atras\"> </span>";
# $pagination.= "<span class=\"disabled\">« previous</span>";
//pages
if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<span class=\"current\">$counter</span>";
else
$pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";
}
}
elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some
{
//close to beginning; only hide later pages
if($page < 1 + ($adjacents * 2))
{
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
{
if ($counter == $page)
$pagination.= "<span class=\"current\">$counter</span>";
else
$pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";
}
$pagination.= "...";
$pagination.= "<a href=$targetpage?page=$lpm1>$lpm1</a>";
$pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";
}
//in middle; hide some front and some back
elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
{
$pagination.= "<a href=\"$targetpage?page=1\">1</a>";
$pagination.= "<a href=\"$targetpage?page=2\">2</a>";
$pagination.= "...";
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
{
if ($counter == $page)
$pagination.= "<span class=\"current\">$counter</span>";
else
$pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";
}
$pagination.= "...";
$pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";
$pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";
}
//close to end; only hide early pages
else
{
$pagination.= "<a href=\"$targetpage?page=1\">1</a>";
$pagination.= "<a href=\"$targetpage?page=2\">2</a>";
$pagination.= "...";
for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<span class=\"current\">$counter</span>";
else
$pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";
}
}
}
//next button
if ($page < $counter - 1)
$pagination.= "<a href=\"$targetpage?page=$next\"><span class=\"icon-forward\" alt=\"Siguiente\"></span></a>";
else
$pagination.= "<span class=\"icon-forward\" alt=\"Siguiente\"></span>";
# $pagination.= "<span class=\"disabled\">next »</span>";
$pagination.= "</div>\n";
}
?>
<?php
if ($total_pages == 0){
?>
<script type="text/javascript">
alert("No se ha registrado ningún Post hasta el momento...");
</script>
<?php
}else{
blabla blaa... el div que va a mostrar el contenido de la consulta...
}
?>