He hecho una pagina simple que lee 2 tablas una lleva los nombres de las poblaciones y la otra los nombres comerciales de unas empresas esta información la presento en una tabla, hasta aqui bien, he añadido posteriormente un buscador y un select para filtrar por poblaciones y funciona bien y ahora viene el problema he añadido un paginador el "Zebra_pagination.php" con la tabla completa sin filtrar el paginador funciona ya que cuento los registros totales con Select Count(*), pero con el buscador y el select una vez filtrado no consigo averiguar el total de registros que ha encontrado para que el paginador me los pagine valga la rebundancia, y por lo tanto no me funciona.
Creo que estoy obligado a utilizar estas dos instrucciones:
SQL_CALC_FOUND_ROWS
SELECT FOUND_ROWS
pues bien lo hago y no funciona.
Os aseguro que lo he intentado todo durante mas de 30 horas casi sin interrupcion, ya no se ni lo que he probado o he dejado de probar y a pesar de todo no lo consigo hacer funcionar, tengo que aclarar que soy muy novato en esto y algo mayor pero me encantaria poderlo hacer funcionar.
Os pongo el código que tengo hecho a continuación y os pediria que me ayudarais, si necesitais algo o alguna aclaración os la dare con mucho gusto.
Gracias a tod@s.
Código PHP:
<?php
$conexion = mysql_connect('localhost', 'root', '');
mysql_select_db('general');
?>
<?php
$records_per_page = 3;
// 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
$rows = mysql_fetch_assoc(mysql_query('SELECT FOUND_ROWS() AS rows'));
// Pasar el número total de registros a la clase de paginación
$pagination->records($rows['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 SQL_CALC_FOUND_ROWS * 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);
?>
</table>
</body>
</html>