Hola! que tal, verán estoy tratando de hacer un paginador de resultados de un buscador de usuarios, pero lamentablemente no me sale, tengo este codigo, que es el mostrar_resultados.php, pero al hacer la busqueda en vez de mostrar 5 resultados me muestra 6, y al pasar a siguiente, me muestra todos los usuarios de la bd.
Entonces la pregunta es cómo hago para poder paginarlo bien?, hay algo que estoy haciendo mal? cuando la pagina ya existe como hago para cargarla y que siga manteniendo la consulta?
<?php
include('header.inc');
if(!$_SESSION['usuario']=='usuario'){
header("Location: index.php");// si no es igual a nick te direcciona al inicio u a otra pagina }
include_once ("connect.php");
$id=$_SESSION["id"];
$usuario=$_SESSION["usuario"];
$sexo = (!empty($_POST["sexo"]) ?
" sexo='".trim($_POST["sexo"])."'" : "");
$interestin = (!empty($_POST["interestin"]) ?
" AND interestin='".trim($_POST["interestin"])."'" : " interestin='".trim($_POST["interestin"])."'") : "");
$pais = (!empty($_POST["pais"]) ?
" AND pais='".trim($_POST["pais"])."'" : " pais='".trim($_POST["pais"])."'") : "");
$estadocivil= (!empty($_POST["estadocivil"]) ?
" AND estadocivil='".trim($_POST["estadocivil"])."'" : " estadocivil='".trim($_POST["estadocivil"])."'") : "");
? " WHERE "
: "");
$s = "SELECT * FROM members "
. $where
. $sexo
. $interestin
. $pais
. $estadocivil;
if (!isset($pag)) $pag = 1; // Por defecto, pagina 1 $tampag = 5;
$reg1 = ($pag-1) * $tampag;
$result = mysql_query("SELECT sexo, interestin, pais, estadocivil FROM members LIMIT $reg1, $tampag");
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;
}
?>
en la parte del html, muestro los detalles del usuario haciendo
<?php echo $row['estadocivil'];?>
por ejemplo
y en el final de la pagina hago lo siguiente
<?php echo paginar($pag, $total, $tampag, "mostrar_resultados.php?pag="); ?>
Gracias por leer.