Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Arm144 en 28 Mayo 2017, 18:15 pm



Título: Creación de un paginador
Publicado por: Arm144 en 28 Mayo 2017, 18:15 pm
Hola Buenas.
Estoy teniendo algunos problemas a la hora de realizar un paginador para una web. Las web las estoy pasando de esta forma en un índex. php
Código:

$pagina = isset($_GET['p']) ? strtolower($_GET['p']) : 'Home';
require_once 'php/header.php';
require_once 'php/' . $pagina . '.php';


Así bien en un nabab las voy haciendo referencia de esta manera:

Código:
<ul class="nav navbar-nav">
<li><a href="?p=Home"><span class='fa fa-home'></span> Home </a></li>
<li><a href="?p=Gafas_Graduadas">Gafas de Ver </a></li>
</ul>

Pues bien a la hora de realizar el navegador, tengo problemas con la url a pasar, lo estoy realizando de la siguiente forma:

Código:
<?php
//Clase con la conexión a la BD
include 'Conexion_a_BD.php';
$TAMANO_PAGINA = 10;

$pagina = $_GET["pagina"];
if (!$pagina) {
   $inicio = 0;
   $pagina=1;
} else {
    $inicio = ($pagina - 1) * $TAMANO_PAGINA;
}
$query_gafasVer="SELECT * FROM productos WHERE tipo='Gafa_de_Ver'";
$resultado=$conex->query($query_gafasVer);
$num_resultados = $resultado->rowCount(PDO::FETCH_ASSOC);
$total_paginas = ceil($num_resultados / $TAMANO_PAGINA);

$consulta = "SELECT * FROM productos WHERE tipo='Gafa_de_Ver' ORDER BY Creado DESC LIMIT :inicio, :fin";
$stm  = $conex->prepare($consulta);
$stm->bindParam(':inicio', $inicio, PDO::PARAM_INT);
$stm->bindParam(':fin', $TAMANO_PAGINA, PDO::PARAM_INT);
$stm->execute();

while ($row = $stm->fetchAll(PDO::FETCH_ASSOC)) {
    foreach($row as $producto)
        //Contenido a mostrar
   }
}
if ($total_paginas > 1){
   for ($i=1;$i<=$total_paginas;$i++){
if ($pagina == $i) echo $pagina;
else    echo "<a href='?pagina=" . $i . "'>" . $i . "</a> ";
    }
}
?>

Alguien sabe que he de pasar en el ultimo href para que se realice correctamente la paginación? Estoy totalmente perdido.