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, alguien me podia decir en que lugar debo poner ese parametro y como debo ponerlo.
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: </font> <input name="txtBusqueda" type="text" size="30" style="border-width: 2px; font-size:13pt; font-weight:bold;color: #800000;"> <font color="#800000"> Población: </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>