Tema: Paginador
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/02/2012, 15:27
ra120354
 
Fecha de Ingreso: febrero-2012
Ubicación: N/A
Mensajes: 54
Antigüedad: 12 años, 9 meses
Puntos: 0
Atascado de verdad

Hola a todos, soy nuevo en este foro y necesito ayuda.
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:&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 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>
Gracias a tod@s.