Comunidad de diseño web y desarrollo en internet online

Problema con paginación en PHP

Citar            
MensajeEscrito el 20 Sep 2014 12:34 am
Buen día compañeros mi problema es el siguiente:

Estoy realizando un sitio web de una inmobiliaria. Tengo un buscador que me muestra las casas según la ciudad a la que pertenecen. Le incluí el sistema de paginación y funciona muy bien, excepto por un detalle, en el cual quisiera me echaran una mano:

tengo 8 registros de prueba en mi base de datos, de los cuales 7 pertenecen a la ciudad llamada "abasolo" y 1 pertenece a la ciudad de "monterrey", ahora bien la paginación la tengo por defecto para que muestre 6 viviendas por página;

al realizar la búsqueda de las 7 viviendas de abasolo, en la primer página se muestran las primeras 6 viviendas de abasolo, hasta aquí todo bien, pero al ir a la segunda página, ya no me muestra la vivienda #7 de abasolo, sino que me muestra la vivienda #3 de abasolo y también me muestra la vivienda de monterrey.

Me podrían ayudar a solucionar este problema?

dejo el código del archivo donde hago las búsquedas y de la librería que utilizo para que se realice la paginación, muchas gracias a todos y que Dios les Bendiga y les Conserve la Salud.

nombre del archivo: busca_grand_nl.php

Código PHP :

<section id="contenedor_buscador">
       <aside id="izquierda">
         <h4>Buscar Propiedades de Nuevo Le&oacute;n</h4><br>
         <form name="form1" method="post" action="busca_grand_nl.php">
         <label>B&uacute;squeda por Colonia:</label>
         <input type="text" name="txtBusqueda" id="txtBusqueda">
         <label>Elija Municipio*:</label>
         <select name="selCiudad" id="selCiudad">
         <option value="-1" selected>Ver todas las Propiedades</option>
      <?php
         $tablaciudades = mysql_query("SELECT * FROM municipios_monterrey ORDER BY nombre_mun ASC"); // Seleccionamos las ciudades de la tabla ciudades
         while ($registrociudad = mysql_fetch_array($tablaciudades)) { // Vamos a repetir una Option (opcion), de la Lista Desplegable, por cada ciudad en la tabla
      ?>
      <option value="<?php echo $registrociudad['id_mun']; ?>"><?php echo $registrociudad['nombre_mun']; ?></option>
      <?php
         } // termina la zona de repeticion
         mysql_free_result($tablaciudades); // se libera la memoria usada por la tabla
      ?>
         </select>
         
         <input type="submit" name="cmdBuscar" id="cmdBuscar" value="&nbsp;Buscar&nbsp;">
         </form>
      
         <h5>Los campos marcados con (*) son obligatorios</h5>
      </aside>
      <article id="derecha">
       <h2>Resultados de su b&uacute;squeda</h2>
      <?php
      $_pagi_sql = "SELECT propiedades.*, municipios_monterrey.* FROM propiedades, municipios_monterrey WHERE propiedades.id_mun = municipios_monterrey.id_mun ";
      if (isset($_POST['txtBusqueda'])) {
      $_pagi_sql .= " AND propiedades.colonia LIKE '%" . $_POST['txtBusqueda'] . "%' ";
      if (intval($_POST['selCiudad']) > 0) {
      $_pagi_sql .= " AND propiedades.id_mun = '" . intval($_POST['selCiudad']) . "'";
         }
      }
      $_pagi_sql .= " ORDER BY municipios_monterrey.nombre_mun ASC";
      //inicio de código para paginacion
      $_pagi_conteo_alternativo=true;
      $_pagi_cuantos = 6;
      include("paginator.inc.php");
      //fin de código para paginacion

      $tabla = mysql_query($_pagi_sql);

      /*de aqui hasta el "else{" es el codigo para poner el mensaje de "no se encontraron resultados y el "}" que cierra esta al final, despues de "mysql_close($conexion);".*/
      $num_filas=mysql_num_rows($tabla);
      if($num_filas==0){
         echo "<center>No se encontraron resultados para su b&uacute;squeda</center>";
      }
      else{ //inicio de código para paginacion aqui se cambio ($tabla)) por ($_pagi_result))
      while ($registro = mysql_fetch_array($_pagi_result)) 
      {
      ?>

      <?php $id = $registro['id_dir'];?><!--En esta línea del código va entre corchetes el id de la tabla propiedades-->


      <div class="propiedades">   
         <img id="img_array"src="<?php echo $registro['imagen'];?>"/><br><br>
         <label>Direccion:<?php echo $registro['direccion']; ?></label><br>
         <label>Colonia:<?php echo $registro['colonia']; ?></label><br>
         <label>Municipio:<?php echo $registro['municipio']; ?></label><br>
         <label>Estado:<?php echo $registro['estado']; ?></label><br>
         <label>Estatus:<?php echo $registro['estatus']; ?></label><br>
         <img id="img_precio" src="../img/etiqueta_precio.png"/><label id="precio"><?php echo $registro['precio'];?></label><br>
         <a href="detalles.php?id_dir=<?php echo $id?>"><img id="img_llave" class="fade" src="../img/llave_detalle.png"/></a><label id="llave">Ver Detalles</label>   
      </div>               

      <?php      
      }
      ?>
      <!--inicio de código para paginacion-->
      <?php echo"<br><div class='barra-navegacion'><p>".$_pagi_navegacion."</p></div>"; ?>
      <!--fin de código para paginacion-->
      <?php
      mysql_free_result($tabla);
      mysql_close($conexion);
      }
      ?>
   
      </article>
   </section>


nombre del archivo: paginator.inc.php es la librería que realiza la paginación, el sistema no me permite poner el código ya que es muy largo, pero aqui dejo el link de descarga del archivo:

http://www.desarrolloweb.com/articulos/ejemplos/paginator.inc.php.zip

Por cierto ya en otro foro sólo me dijeron que este problema se resuelve de la siguiente manera, pero como soy novato no sé cómo hacerlo, cito textualmente:

"lo unico que tenes que hacer es mantener los filtros cada vez que vaz paginando".

Muchas gracias a todos de antemano por sus respuestas Dios les Bendiga y les Conserve la Salud

Por programador_independiente

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 Sep 2014 07:24 pm
Antes de publicar este tipo de dudas, prueba si tus querys funcionan correctamente y que te arrojan los datos que necesitas.

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

chrome
Citar            
MensajeEscrito el 25 Sep 2014 07:54 pm

elporfirio escribió:

Antes de publicar este tipo de dudas, prueba si tus querys funcionan correctamente y que te arrojan los datos que necesitas.


Pues gracias por el consejo, pero es por eso que he posteado este mensaje, porque si me funcionan correctamente las querys.

Doy por concluido el tema ya que yo mismo he encontrado la solución.

Por programador_independiente

1 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.