Hola. El otro día encontré este código para paginar una consulta de una bd y la verdad es sencillo y va muy bien. Ahora a esta consulta le quiero meter filtros, por ejemplo, para que filtre por marcas... el problema es que no se como hacerlo para que me genere las paginas según la consulta que reciba después de filtrada. No se si tengo que trabajar con sesiones o pasarlo por get,..
Lo he intentado pero no consigo hacerlo funcionar.
El código para paginar es este:
Código PHP:
<?php
# Datos conexión BD
include('conexiones/bd.php');
conectar();
if (!isset($pag)) $pag = 1; // Por defecto, pagina 1
$consulta = mysql_query("SELECT COUNT(*) FROM Marcas");
list($total) = mysql_fetch_row($consulta);
$tampag = 10;
$reg1 = ($pag-1) * $tampag;
$consulta = mysql_query("SELECT idmarcas,Marcas FROM Marcas LIMIT $reg1, $tampag");
desconectar();
if (mysql_num_rows($consulta)){
echo "<table border = '1'> \n";
echo "<tr><td>Nombre</td><td>Apellidos</td></tr> \n";
while ($row = @mysql_fetch_array($consulta)) {
echo "<tr><td>".$row["idmarcas"].
"</td><td>".$row["Marcas"]."</td></tr> \n";
}
echo "</table> \n";
}
else
echo "¡ No se ha encontrado ningún registro !";
/******************************************************/
/* Funcion paginar
* actual: Pagina actual
* total: Total de registros
* por_pagina: Registros por pagina
* enlace: Texto del enlace
* Devuelve un texto que representa la paginacion
*/
function paginar($actual, $total, $por_pagina, $enlace) {
$total_paginas = ceil($total/$por_pagina);
$anterior = $actual - 1;
$posterior = $actual + 1;
if ($actual>1)
$texto = "<a href=\"$enlace$anterior\">«</a> ";
else
$texto = "<b>«</b> ";
for ($i=1; $i<$actual; $i++)
$texto .= "<a href=\"$enlace$i\">$i</a> ";
$texto .= "<b>$actual</b> ";
for ($i=$actual+1; $i<=$total_paginas; $i++)
$texto .= "<a href=\"$enlace$i\">$i</a> ";
if ($actual<$total_paginas)
$texto .= "<a href=\"$enlace$posterior\">»</a>";
else
$texto .= "<b>»</b>";
return $texto;
}
echo paginar($pag, $total, $tampag, "prueba_paginas.php?pag=");
?>
Echarme una mano, please.
Saludos