Hola a todos. Me pasó algo raro con este paginador que hice.
Tengo un archivo buscador.php con un formulario el cual pasa el idtipopropiedad por GET, que en este caso es 1.
La página search.php recoge el ID y lo utiliza para buscar los resultados en la BDD.
La página search.php me muestra de a 4 los resultados por página y en este caso, el paginador me dice que hay 3 páginas con el
idtipopropiedad solicitado pero me di cuenta que solo puedo cambiar 1 sola vez de página porque después, el
idtipopropiedad que debería aparecer en el link, ya no aparece.
El resultado me aparece linkeado así:
http://search.php?pag=2&idtipopropiedad=1
Al seleccionarlo me aparecen perfectos los resultados, pero si quiero voilver atrás, el link me aparece de esta forma:
http://search.php?pag=1&idtipopropiedad=
Les paso las consultas y los códigos que tengo:
search.php
Código PHP:
if(isset($_GET['searchprop']))
// declarar variables los datos del formulario
$idtipopropiedad = $_GET['id_tipopropiedad'];
$condiciones = "";
if ($idtipopropiedad != "") $condiciones .= " AND propiedades.id_tipopropiedad = $idtipopropiedad";
$pag = $_GET['pag'];
if (!isset($pag)) $pag = 1; // Por defecto, pagina 1
$sql = "SELECT COUNT(*) FROM propiedades WHERE propiedades.id_tipopropiedad = tipopropiedad.id_tipopropiedad $condiciones ORDER BY id_propiedad";
$result = mysql_query($sql, $conexion);
list($total) = mysql_fetch_row($result);
$tampag = 4;
$reg1 = ($pag-1) * $tampag;
$result = mysql_query("SELECT * FROM propiedades WHERE propiedades.id_tipopropiedad = tipopropiedad.id_tipopropiedad $condiciones ORDER BY id_propiedad LIMIT $reg1, $tampag", $conexion) or die (mysql_error());
// Acá me muestra los resultados...
// Paginador
function paginar($actual, $total, $por_pagina, $enlace) {
$pag = $_GET['pag'];
$idtipopropiedad = "&idtipopropiedad=". $_GET['id_tipopropiedad'];
$total_paginas = ceil($total/$por_pagina);
$anterior = $actual - 1;
$posterior = $actual + 1;
if ($actual>1)
$texto = "<a href=\"$enlace$anterior$idtipopropiedad\" > ANTERIOR</a> ";
else
$texto = "<b>ANTERIOR</b> ";
for ($i=1; $i<$actual; $i++)
$texto .= "<a href=\"$enlace$i$idtipopropiedad\" >$i</a> ";
$texto .= "<b>$actual</b> ";
for ($i=$actual+1; $i<=$total_paginas; $i++)
$texto .= "<a href=\"$enlace$i$idtipopropiedad\" >$i</a> ";
if ($actual<$total_paginas)
$texto .= "<a href=\"$enlace$posterior$idtipopropiedad\" >SIGUIENTE </a>";
else
$texto .= "<b>SIGUIENTE</b>";
return $texto;
// Cierro la conexion
mysql_close($conexion);
}
echo paginar($pag, $total, $tampag, "prop-search.php?pag=");
Espero que sea una pavada y que me puedan decir donde me estoy equivocando.
Muchas gracias a todos y salutes.
Marx.