Paginador de resultados ayuda!

Iniciado por den_22, 15 Mayo 2010, 17:47 PM

0 Miembros y 1 Visitante están viendo este tema.

den_22

No pasa nada al hacerlo, es lo mismo, lo que yo me pregunto, es como se hace para "conservar" los datos que se filtraron en la búsqueda y para que aparezcan en las paginas siguientes los usuarios con las mismas caracteristicas.
En vez de poner
Código (php) [Seleccionar]
<?php echo paginar($pag$total$tampag"show_results.php?pag="); ?>

deberia poner algo como
Código (php) [Seleccionar]
<?php echo paginar($pag$total$tampag"show_results.php?pag=".$url.""); ?>   ?

MinusFour

A que te refieres? Cuando imprimias la variable $pag no cambiaba el valor?

den_22

Puse algo asi:

Código (php) [Seleccionar]
<?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"])
        ? (!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 "
        
"");
 
echo 
$pag;

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;

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\">&laquo;</a> ";
  else
    
$texto "<b>&laquo;</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\">&raquo;</a>";
  else
    
$texto .= "<b>&raquo;</b>";
  return 
$texto;
}

 
$s "SELECT * FROM members " 
        
$where
        
$sexo 
        
$interestin
        
$pais 
        
$estadocivil
        
." LIMIT $reg1$tampag";





 
$query mysql_query($s) or die(mysql_error());



while(
$row mysql_fetch_array($query)) {







?>


y no pasa nada. aparece <1><2> pero al presionar en la pagina 2 me muestra los resultados no que yo filtré sino todos los usuarios de la bd

MinusFour

Ese <1> <2> lo ves en la misma pagina? Estás seguro que es el echo que pusiste?

Código (php) [Seleccionar]

echo "<h1>Estas en la pagina: $pag</h1>";


Después haces click en los links y fijate si $pag cambia o no. Si no cambia es problema de la variable, si cambia es problema de la query....

den_22

Haciendo lo que dijiste dice Estas en la pagina : 1, los links cambian pag=1 pag=2; pero el tema es que si yo presiono la 2 no mantiene el rango de usuarios que estoy buscando, me muestra todos.

MinusFour

El punto es, cuando los links cambian, y visitas la nueva pagina con el nuevo argumento en &pag, cambia el texto? Dice Estás en la Pagina 2, 3, 4?

den_22

Ah, no no cambia, o sea el numero si cambia pero el Estas en la pagina, siempre se mantiene en 1

MinusFour

Si siempre dice Estás en la pagina 1 es porque no estás pasando bien la variable post.

prueba hacer

Código (php) [Seleccionar]

$pag = $_POST['pag'];


Antes de que se use $pag por supuesto.

den_22

Pero $pag no viene del buscador si yo pongo esto

Código (php) [Seleccionar]
$id=$_SESSION["id"];
$usuario=$_SESSION["usuario"];
$pag=$_POST['pag'];


no entiendo como deberia ser.

MinusFour

Si haces eso, la variable $pag obtiene el valor directamente de la variable HTTP pag.