Tema: Paginador
Ver Mensaje Individual
  #7 (permalink)  
Antiguo 11/02/2012, 05:30
ra120354
 
Fecha de Ingreso: febrero-2012
Ubicación: N/A
Mensajes: 54
Antigüedad: 12 años, 9 meses
Puntos: 0
Paginador

Hola a tod@s.

Tengo una página que muestra los resultados de una base de datos Mysql y que para filtrar los mismos utilizo un campo de busqueda y un select donde selecciono la población para poder ver solo los registros que cumplen dichas condiciones, lo que hago realmente es filtrar los registros, ESTO FUNCIONA BIEN.

Ahora añado una clase para paginar (Zebra_Pagination.php) la implemento en mi código y aparece la misma, le digo que me págine 5 registros por página y me lo hace bien.

Mi problema es el siguiente cuando pagina el paginador me salen en la primera página los primeros 5 registros correctamente filtrados pero al cambiar de página por ejemplo (cuando cambio con el paginador de la página 1 a la 2) lo que me sale son igualmente 5 registros pero sin filtrar osea me saca del registro 6 a 10 pero sin filtrar ni por el campo de busqueda ni por el select, me saca los registros sin importar la población que he seleccionado ni el criterio de busqueda.

Se que en algún lugar me falta poner algún parametro para que el paginador siga utilizando el filtrado que le he hecho a la tabla y me lo mantega cuando cambio de página, no obstante despues de haber probado todo lo que alcanza mis conocimientos no doy con ello.

Necesito ayuda llevo muchas horas con esto y ya no se ni lo que he probado.

Gracias a tod@s.

Código PHP:
<?php
$conexion 
mysql_connect('localhost''root''');
mysql_select_db('general');
?>

 <?php
 

           $records_per_page 
5
    
         
// Incluye la clase de paginación
        
require '../Zebra_Pagination.php';

        
// Instancia del objeto paginación
        
$pagination = new Zebra_Pagination();
        
        
 
  
// Recuperar el número total de registros en la tabla
       
$result mysql_query("SELECT * FROM actividades"$conexion);
         
$num_rows mysql_num_rows($result);




        
        

        
// Pasar el número total de registros a la clase de paginación
        
$pagination->records($num_rows);

        
// Registros por página
        
$pagination->records_per_page($records_per_page);
 

 
 
?>


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Reporte de Propiedades</title>

<!--Enlaces a los css necesarios-->
        <link rel="stylesheet" href="../reset.css" type="text/css">

        <link rel="stylesheet" href="../style.css" type="text/css">

        <link rel="stylesheet" href="../Zebra_Pagination.css" type="text/css">






</head>
<body>

 <table width="765" height= 30 border="1">
  <tr>
    <td><?php $pagination->render();?></td>
  </tr>
</table>
   
        
        

<table width="765" height="30" border="0">
<td>
<form name="form1" method="post" action="PaginadorLocal.php">
<font color="#800000">Buscar:&nbsp;&nbsp;&nbsp;</font>
<input name="txtBusqueda" type="text" size="30" style="border-width: 2px;  font-size:13pt; font-weight:bold;color: #800000;">
      
<font color="#800000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Población: &nbsp;&nbsp;&nbsp;</font> 
    <select name="selCiudad" id="selCiudad" style class="Guias2">
        <option value="-1" selected>Todas las poblaciones</option>
        
<?php
    $tablapoblaciones 
mysql_query("SELECT * FROM poblaciones ORDER BY poblacion ASC"); // Seleccionamos las ciudades de la tabla ciudades
    
while ($registropoblacion mysql_fetch_array($tablapoblaciones)) { // Vamos a repetir una Option (opcion), de la Lista Desplegable, por cada ciudad en la tabla
?>

<option value="<?php echo $registropoblacion['Id']; ?>"><?php echo $registropoblacion['Poblacion']; ?></option>

<?php
    
// termina la zona de repeticion
    
mysql_free_result($tablapoblaciones); // se libera la memoria usada por la tabla
?>
    </select>
   
    </label>
    <input type="submit" name="cmdBuscar" id="cmdBuscar" value="BUSCAR">
     
</form>

</td>
</table>

  <table width="765" height="80" border="0">
  <?php
$sql
"SELECT * FROM actividades, poblaciones WHERE actividades.Actividades = 'Hosteleria' and actividades.idpoblacion = poblaciones.id ";
if (isset(
$_POST['txtBusqueda'])) {
    
$sql .= " AND actividades.NombreComer LIKE '%" $_POST['txtBusqueda'] . "%' ";
    if (
intval($_POST['selCiudad']) > 0) {
        
$sql .= " AND actividades.idpoblacion = '" intval($_POST['selCiudad']) . "'";
    }
}
$sql .= " ORDER BY NombreComer LIMIT
. (($pagination->get_page() - 1) * $records_per_page) . ', ' $records_per_page '
        '
;

$tabla mysql_query($sql);





while (
$registro mysql_fetch_assoc($tabla)) {
?>
        <tr>
          <td><a href="<?php echo $registro['Url']; ?>"><?php echo $registro['NombreComer']; ?>"></a></td>
        </tr>
        <tr>
          <td width="765" height="0"></td>
        </tr>
        <?php
}
mysql_free_result($tabla);
mysql_close($conexion);

 echo 
"$num_rows Rows\n"// esto lo he puesto para comprobar cuantos registros me encuentra

?>
        
    </table>
   


</body>
</html>

Última edición por ra120354; 11/02/2012 a las 05:35