Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/06/2013, 06:08
Anisakys
 
Fecha de Ingreso: mayo-2013
Ubicación: Valladolid
Mensajes: 8
Antigüedad: 11 años
Puntos: 0
Exclamación Problemas al pasar de página en paginación

Chicos tengo un problema con la paginación y es que al realizar una búsqueda por provincia aparece bien la primera página de resultados (incluso me dice bien el número de resultados obteniedos de la consulta) pero al pasar de página se fastidia la consulta y me muestra todos los resultados de la base de datos.

He estado revisandolo de arriba a abajo y no encuentro el fallo, sé que es un problema en el envío de la petición hacia el resto de páginas pero no doy con ello si me echárais un cable os lo agradecería.

El código es el siguiente:

Código PHP:
// COMPROBAMOS QUE VIENE DEL BUSCADOR SINO REDIRECCIONAMOS CON UN ELSE
    
if( isset ($_GET['comienzo']) or (isset($_GET['comautonoma'])and !empty ($_GET['comautonoma'])) or (isset($_GET['provincia'])and !empty($_GET['provincia'])) or (isset($_GET['preciocat']) and !empty($_GET['preciocat'])) or (isset($_GET['codigopostal']) and !empty($_GET['codigopostal']))) {    


                
        <!-- 
CONTENEDOR -->
            <
div class="contenedor" id="contenedor"
        
            <!-- 
ENCABEZADO -->    
                

// DATOS DE MYSQL
    
$servidor="servidor";
    
$user="usuario";
    
$pass="contraseña";
    
$bd="db";
    
$conexion=mysql_connect($servidor,$user,$pass) or die (mysql_error("La base de datos no está disponible"));

// CONECTAMOS CON LA BASE DE DATOS    
    
mysql_select_db($bd,$conexion);

// COMPROBAMOS LOS DATOS REQUERIDOS POR EL USUARIO PARA REALIZAR LA CONSULTA
    
$comunidad=$_GET['comautonoma'];
    
$provincia=$_GET['provincia'];
    
$preciocat=$_GET['preciocat'];
    
$codigopost=$_GET['codigopostal'];

// ESTABLECEMOS EL NÚMERO DE FILAS POR PÁGINA Y LA FILA INICIAL
    
$filaspag 10;
    
$comienzo $_REQUEST['comienzo'];
    if (!isset(
$comienzo))
    {
        
$comienzo =0;
    }

    if(isset(
$comunidad) && $comunidad!="")
        {
        
$where .= "AND comunidadautonoma='$comunidad'";
        }
    if(isset(
$provincia) && $provincia !="")
        {
        
$where .=" AND provincia='$provincia'";
        }
    if(isset(
$preciocat) && $preciocat !="")
        {
        
$where .= " AND preciocat='$preciocat'";
        }
    if(isset(
$codigopost) && $codigopost !="")
        {
        
// SI HAN INTRODUCIDO UN CODIGO POSTAL REALIZAR LA CONSULTA SINO ELSE
            
$numero "$codigopost";
            
$codigopostal=$numero[0];
            
$codigopostal .=$numero[1];
            
$codigopostal .=$numero[2];
            
$codigopostal .=$numero[3];
            
$codigopostal .=$numero[4];
    
            
$where .= " AND codigopostal like '$codigopostal%'";

            
$where .="ORDER BY codigopostal";
            
$consulta "SELECT * FROM geriatricos WHERE numplazas not like '0' $where";
        }
    else 
        {
            
$where .=" ORDER BY codigopostal ASC";
            
$consulta "SELECT * FROM geriatricos WHERE numplazas not like '0' $where";
        }
    
// LLAMAMOS A LOS RESULTADOS Y COMPROBAMOS EL NÚMERO DE REGISTROS OBTENIDOS
    
$resultado=mysql_query($consulta) or die (mysql_error());
    
$numregistros=mysql_num_rows($resultado);

        
// SI EXISTEN REGISTROS ENTONCES MOSTRAMOS RESULTADOS SINO DAMOS ERROR
    
if ($numregistros>0)
        {                                
    
    echo <<< html
    
<!-- CONTENIDO CENTRAL -->    
        <div  class="contenido1" id="contenido">
            <div id="titulo" class="titulo">
            Residencias encontradas 
        </div>
    <br />
            
<!--TABLA DE DATOS-->            
    <table style="width: 800px; height: 250px">
        <td style="width: 13px">
        </td>
        <td style="width: 205px">
            <fieldset  style="border:2px solid #578fc4; width:100px; height:100%" class="round">
                <legend align="left"><b>Recomendadas</b>
                </legend>
                <marquee height="400"  direction="up" onmouseover="this.stop();" onmouseout="this.start();" scrolldelay="220" STYLE="background-color:transparent">
            <br />

            
<!--MOSTRAMOS LA PUBLICIDAD-->
html;
    
$var1="<center><a class='seleccion' target=\'_blank\' href='detallesres.php?id=117'>Gravina</a></center>";
    
$var2="<center><a class='seleccion' target=\'_blank\' href='detallesres.php?id=246'>Moral</a></center>";
    
$var3="<center><a class='seleccion' target=\'_blank\' href='detallesres.php?id=33'>Avenida San Luis</a></center>";
    
$var4="<center><a class='seleccion' target=\'_blank\' href='detallesres.php?id=216'>Madre Maravillas</a></center>";
    
$var5="<center><a class='seleccion' target=\'_blank\' href='detallesres.php?id=60'>Dos de Mayo</a></center>";
     echo 
"<strong><span>$var1</span></strong><br /><br /><br /><br />";
     echo 
"<span><strong>$var2</strong></span><br /><br /><br /><br />";
     echo 
"<span><strong>$var3</strong></span><br /><br /><br /><br />";
     echo 
"<span><strong>$var4</strong></span><br /><br /><br /><br />";
     echo 
"<span><strong>$var5</strong></span><br /><br /><br /><br />";
         
echo <<< html
                     <br />
                </marquee>
            </fieldset>
        </td>
        <td style="width: 11px">
        </td>
        <td class="tabla" style="width: 1546px; height: 145px;">

        
<!--MOSTRAMOS PÁGINAS CON EL NÚMERO DE RESULTADOS ENCONTRADOS-->
html;

      
// Calculamos el número total de filas de la tabla
    
      
if ($numregistros 0)
        {
          
// Mostrar números inicial y final de las filas a mostrar
          
print ("<strong><center>Mostrando resultados " . ($comienzo 1) . " a ");
          
          if ((
$comienzo $filaspag) < $numregistros)
              {
                  print (
$comienzo $filaspag);
              }
        
          else
              {
                  print (
$numregistros);
                  
              }
              print (
" de un total de $numregistros </font></center></strong> <br>");
                }
            
          
// Mostramos botones anterior y siguiente
                    
          
if ($numregistros $filaspag)
              {
                  if (
$comienzo 0)
                      {
                          print (
"  <A HREF='BUSCA.php?comienzo=" . ($comienzo $filaspag) . "'>Anterior</A> || </center> ");
                      }                 
                  if (
$numregistros > ($comienzo $filaspag))
                      {
                      print (
"<A HREF='BUSCA.php?comienzo=" . ($comienzo $filaspag) . "'> Siguiente</A> \n");
                      }
                  }
              print (
"\n ");
              echo 
"</right>";
          
              
echo <<< html
            
<!--TABLA DE RESULTADOS-->
                                                                    
html;

// MIENTRAS HAYA REGISTROS OBTENIDOS DE LA CONSULTA MOSTRAR
        
    
$instruccion "$consulta limit $comienzo, $filaspag";
    
$consulta mysql_query ($instruccion$conexion)        or die ("Fallo en la consulta");

// Mostrar resultados de la consulta
    
$numregistros mysql_num_rows ($consulta);
    if (
$numregistros 0)
    {
        
echo <<< html
        <table style="width: 100%" border="0">
        <td class="style39" style="width: 210px">
        <center><h3>Nombre de la Residencia</h3></center>
        </td>
        <td class="style39" style="width: 50px">
        <h3><center>Plazas</center></h3>
        </td>
        <td  class="style39" style="width: 35px" >
        <h3><center>C.Postal</center></h3>
        </td>
html;
        
        while (
$row=mysql_fetch_assoc($consulta))
//            {


    //    for ($i=0; $i<$numregistros; $i++)
            
{
                
$id=$row['id_residencia'];
                echo 
"<tr><td ><center><a class='seleccion' target=\'_blank\' href='detallesres.php?id=$id'>$row[nombre]</a></center></td>";
                echo 
"<td ><center>$row[numplazas]</center></td>";
                echo 
"<td ><center>$row[codigopostal]</center></td></tr>";
            }
    
        }        
echo <<< html
         </table>
        </td>
    </table>

html; 

La página donde se encuentra el buscador es: www.residenciasasequibles.es/buscador.php por si alguien quiere echar un ojo y comprobar por sí mismo mi problema.

Agradecería que el que viese mi problema me respondiera lo antes posible, como comprenderéis es una web bastante visitada y no puedo mantener ese problema mucho tiempo