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?
en la parte del html, muestro los detalles del usuario haciendo
y en el final de la pagina hago lo siguiente
Gracias por leer.
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?
Código (php) [Seleccionar]
<?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"])
? (!empty($sexo)
? " AND interestin='".trim($_POST["interestin"])."'"
: " interestin='".trim($_POST["interestin"])."'")
: "");
$pais = (!empty($_POST["pais"])
? (!empty($sexo) || !empty($interestin)
? " AND pais='".trim($_POST["pais"])."'"
: " pais='".trim($_POST["pais"])."'")
: "");
$estadocivil= (!empty($_POST["estadocivil"])
? (!empty($sexo) || !empty($interestin) || !empty($pais)
? " AND estadocivil='".trim($_POST["estadocivil"])."'"
: " estadocivil='".trim($_POST["estadocivil"])."'")
: "");
$where = (!empty($sexo) || !empty($interestin) || !empty($pais) || !empty($estadocivil)
? " WHERE "
: "");
$s = "SELECT * FROM members "
. $where
. $sexo
. $interestin
. $pais
. $estadocivil;
$query = mysql_query($s) or die(mysql_error());
if (!isset($pag)) $pag = 1; // Por defecto, pagina 1
$result = mysql_query("SELECT COUNT(*) FROM members");
list($total) = mysql_fetch_row($result);
$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;
}
while($row = mysql_fetch_array($query)) {
?>
en la parte del html, muestro los detalles del usuario haciendo
Código (php) [Seleccionar]
<?php echo $row['estadocivil'];?>
por ejemploy en el final de la pagina hago lo siguiente
Código (php) [Seleccionar]
<?php echo paginar($pag, $total, $tampag, "mostrar_resultados.php?pag="); ?>
Gracias por leer.