Autor
|
Tema: Paginador de resultados ayuda! (Leído 10,576 veces)
|
den_22
Desconectado
Mensajes: 69
|
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.
|
|
|
En línea
|
|
|
|
MinusFour
|
Pues primeramente creo que el código este: if(!$_SESSION['usuario']=='usuario'){ header("Location: index.php");// si no es igual a nick te direcciona al inicio u a otra pagina }
Necesita corregirse en la parte del if... porque 'usuario' es constante. Y hasta donde tengo entendido, el LIMIT lo aplicas solamente a una query que nunca consultas, al menos en el código asi lo veo....
|
|
|
En línea
|
|
|
|
den_22
Desconectado
Mensajes: 69
|
Hola, quité esa parte del if, pero sigue igual. que debo cambiar en el $result ?
|
|
|
En línea
|
|
|
|
MinusFour
|
Si bueno, lo que pasa es esto... tu quieres limitar los resultados de tu primera consulta $s. Porque tecnicamente estas haciendo el fetch_row con el query de $s. Y en ningun lugar estás limitando la consulta. $s = "SELECT * FROM members " . $where . $sexo . $interestin . $pais . $estadocivil;
Aqui te das cuenta que no estás haciendo ningun limit a la consulta, puesto que nunca variable lo tiene. Lo que necesitas hacer es poner este código arriba de la query. if (!isset($pag)) $pag = 1; // Por defecto, pagina 1 $tampag = 5; $reg1 = ($pag-1) * $tampag;
Y también agregar el limit a la consulta. $s = "SELECT * FROM members " . $where . $sexo . $interestin . $pais . $estadocivil ." LIMIT $reg1, $tampag";
|
|
« Última modificación: 15 Mayo 2010, 19:12 pm por MinusFour »
|
En línea
|
|
|
|
den_22
Desconectado
Mensajes: 69
|
Bueno, MinusFour, hice lo que me indicaste, lo puse asi: <?php include('header.inc'); $id=$_SESSION["id"]; $usuario=$_SESSION["usuario"]; include_once ("connect.php"); $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 ." LIMIT $reg1, $tampag"; if (!isset($pag)) $pag = 1; // Por defecto, pagina 1 $tampag = 5; $reg1 = ($pag-1) * $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; }
pero al darle a buscar no sale nada, la pagina en blanco. deberia buscar. cual puede ser el error?
|
|
|
En línea
|
|
|
|
MinusFour
|
Pues $reg1 ni $tampag están definidos. Fijate en mi post anterior.
|
|
|
En línea
|
|
|
|
den_22
Desconectado
Mensajes: 69
|
Si, ahi me di cuenta, ahora poniendolo asi funciona, pero lo que pasa es que al pasar a la pagina siguiente sigue mostrandome todos los usuarios de la bd, en la unica que respeta es en la primera. pero no asi en las siguientes. existe algun problema en la url? en la forma de paginarlo? yo al final del codigo pongo esto: <?php echo paginar($pag, $total, $tampag, "mostrar_resultados.php?pag="); ?>
<?php include('header.inc'); $id=$_SESSION["id"]; $usuario=$_SESSION["usuario"]; include_once ("connect.php"); $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 " : ""); if (!isset($pag)) $pag = 1; // Por defecto, pagina 1 $tampag = 5; $reg1 = ($pag-1) * $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; } $s = "SELECT * FROM members " . $where . $sexo . $interestin . $pais . $estadocivil ." LIMIT $reg1, $tampag"; ?>
|
|
« Última modificación: 15 Mayo 2010, 19:24 pm por den_22 »
|
En línea
|
|
|
|
MinusFour
|
Imprime la variable $pag antes del if(i!sset($pag))... y verifica si la estás pasando correctamente.
|
|
|
En línea
|
|
|
|
den_22
Desconectado
Mensajes: 69
|
Lo hago con var_dump ? o con echo?
|
|
|
En línea
|
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
problema if (!empty()) con paginador
PHP
|
soru13
|
5
|
3,865
|
12 Mayo 2011, 04:15 am
por Nakp
|
|
|
ayuda con problema al usar IN causa desagrupacion de los resultados
Bases de Datos
|
trachtenberg
|
1
|
1,957
|
26 Noviembre 2012, 03:11 am
por trachtenberg
|
|
|
paginador en jquery
Desarrollo Web
|
fdap91
|
3
|
2,360
|
14 Agosto 2014, 03:45 am
por engel lex
|
|
|
No me muestra resultados Paginador PHP,MYSQL
PHP
|
Jarcx9
|
1
|
1,579
|
2 Diciembre 2014, 14:26 pm
por Jarcx9
|
|
|
Creación de un paginador
PHP
|
Arm144
|
0
|
2,067
|
28 Mayo 2017, 18:15 pm
por Arm144
|
|