Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/05/2005, 05:10
JoHN_FR
 
Fecha de Ingreso: abril-2005
Mensajes: 25
Antigüedad: 19 años
Puntos: 0
Problema con Paginator

Buenas tardes. Tengo un problemilla con el paginator de jpinedo.
La cuestión es que quiero hacer un buscador. Hago varios campos para definir la búsqueda y cuando el usuario le da a aceptar compongo una cadena con todos los criterios de búsqueda y realizo el query.
Le paso los campos por $_POST para realizar dicha cadena.
Sin usar el paginador me funciona perfectamente el filtrado de búsqueda, pero al incluir el Paginator sólo me sale bien la primera página, cuando le doy a la siguiente se pierde todo el filtrado que le pasé con $_POST porque la página se llama a sí misma, y me acaba mostrando todos los resultados.

Esto es el formulario para seleccionar las opciones:

Código PHP:
<form name="buscar" method="post" action="busqueda.php">
  <p align="center">B&uacute;squeda Avanzada</p>
  <div align="center">
    <table width="264" border="0" cellpadding="2" cellspacing="2">
      <tr> 
        <td width="88">Precio:</td>
        <td width="78"><select name="preciomin" id="preciomin">
            <option selected value="">M&iacute;nimo</option>
            <OPTION value=117200>117200 €</OPTION> 
            <OPTION value=117300>117300 €</OPTION> 
            <OPTION value=126200>126200 €</OPTION> 
            <OPTION value=129300>129300 €</OPTION> 
            <OPTION value=156300>156300 €</OPTION> 
            <OPTION value=159300>159300 €</OPTION> 
            <OPTION value=160000>160000 €</OPTION> 
            <OPTION value=165300>165300 €</OPTION> 
            <OPTION value=177200>177200 €</OPTION> 
            <OPTION value=177300>177300 €</OPTION> 
            <OPTION value=189400>189400 €</OPTION> 
            <OPTION value=190000>190000 €</OPTION> 
            <OPTION value=220000>220000 €</OPTION> 
            <OPTION value=270500>270500 €</OPTION> 
            <OPTION value=276500>276500 €</OPTION> 
            <OPTION value=360600>360600 €</OPTION>
          </select></td>
        <td width="78"><select name="preciomax" id="preciomax">
            <option selected value="">M&aacute;ximo</option>
            <OPTION value=117200>117200 €</OPTION> 
            <OPTION value=117300>117300 €</OPTION> 
            <OPTION value=126200>126200 €</OPTION> 
            <OPTION value=129300>129300 €</OPTION> 
            <OPTION value=156300>156300 €</OPTION> 
            <OPTION value=159300>159300 €</OPTION> 
            <OPTION value=160000>160000 €</OPTION> 
            <OPTION value=165300>165300 €</OPTION> 
            <OPTION value=177200>177200 €</OPTION> 
            <OPTION value=177300>177300 €</OPTION> 
            <OPTION value=189400>189400 €</OPTION> 
            <OPTION value=190000>190000 €</OPTION> 
            <OPTION value=220000>220000 €</OPTION> 
            <OPTION value=270500>270500 €</OPTION> 
            <OPTION value=276500>276500 €</OPTION> 
            <OPTION value=360600>360600 €</OPTION>
          </select></td>
      </tr>
      <tr> 
        <td>Habitaciones:</td>
        <td><select name="habitmin" id="habitmin">
            <option selected value="">M&iacute;nimo</option>
            <OPTION value=1>1</OPTION> 
              <OPTION value=2>2</OPTION> <OPTION value=3>3</OPTION> 
              <OPTION value=4>4</OPTION> <OPTION value=5>5</OPTION> 
              <OPTION value=6>6</OPTION> <OPTION value=7>7</OPTION> 
          </select></td>
        <td><select name="habitmax" id="select2">
            <option selected value="">M&aacute;ximo</option>
            <OPTION value=1>1</OPTION> 
              <OPTION value=2>2</OPTION> <OPTION value=3>3</OPTION> 
              <OPTION value=4>4</OPTION> <OPTION value=5>5</OPTION> 
              <OPTION value=6>6</OPTION> <OPTION value=7>7</OPTION> 
          </select></td>
      </tr>
      <tr> 
        <td>Superficie:</td>
        <td><select name="superfmin" id="select4">
            <option selected value="">M&iacute;nimo</option>
            <option value="50">50 m&sup2;</option>
            <option value="60">60 m&sup2;</option>
            <option value="70">70 m&sup2;</option>
            <option value="80">80 m&sup2;</option>
            <option value="90">90 m&sup2;</option>
            <option value="100">100 m&sup2;</option>
            <option value="120">120 m&sup2;</option>
            <option value="150">150 m&sup2;</option>

          </select></td>
        <td><select name="superfmax" id="select5">
            <option selected value="">M&aacute;ximo</option>
            <option value="50">50 m&sup2;</option>
            <option value="60">60 m&sup2;</option>
            <option value="70">70 m&sup2;</option>
            <option value="80">80 m&sup2;</option>
            <option value="90">90 m&sup2;</option>
            <option value="100">100 m&sup2;</option>
            <option value="120">120 m&sup2;</option>
            <option value="150">150 m&sup2;</option>
          </select></td>
      </tr>
      <tr> 
        <td>Localidad:</td>
        <td colspan="2"><select name="localidad" id="localidad">
            <option selected value="">Todas las localidades</option>
<?
    
//Las localidades las he sacado previamente de la BD y las he metido en el array.
         
foreach ($localidades as $loc){
        echo 
"<option>$loc</option>";
    } 
?>
          </select></td>
      </tr>
      <tr> 

      </tr>
      <tr> 
        <td colspan="3"> <div align="center">
            <input name="buscar" type="submit" id="buscar" value="Buscar">
          </div></td>
      </tr>
    </table>
  </div>
</form>
Y aqui el de buscar, la presentación es cutre y eso pero es porque estoy probando nada más :-p

Código PHP:
<?php
$conecta
=mysql_connect($mosConfig_host,$mosConfig_user,$mosConfig_password);
if (!
$conecta){
 echo 
"No se ha podido establecer la conexión con el servidor.";
 }
mysql_select_db($MiBD,$conecta);

//----------------------------------------------------------
$buscar=array();

if(!empty(
$_POST[preciomin]))
{
    
$buscar[] = "precio_v >= '$_POST[preciomin]' ";
}
if(!empty(
$_POST[preciomax]))
{
    
$buscar[] = "precio_v <= '$_POST[preciomax]' ";
}
if(!empty(
$_POST[habitmin]))
{
    
$buscar[] = "nhabit_v >= '$_POST[habitmin]' ";
}
if(!empty(
$_POST[habitmax]))
{
    
$buscar[] = "nhabit_v <= '$_POST[habitmax]' ";
}
if(!empty(
$_POST[superfmin]))
{
    
$buscar[] = "mtrs_v >= '$_POST[superfmin]' ";
}
if(!empty(
$_POST[superfmax]))
{
    
$buscar[] = "mtrs_v <= '$_POST[superfmax]' ";
}
if(!empty(
$_POST[localidad]))
{
    
$buscar[] = "loc_v = '$_POST[localidad]' ";
}
if(!empty(
$buscar))
{
    
$miconsulta implode(" and "$buscar);
    
$miconsulta=" where " $miconsulta;
}

$q="Select * from venta " $miconsulta;

//------------------------------------------------------

$_pagi_sql=$q;
$_pagi_cuantos 2;
include(
"paginator.inc.php");
$datos=mysql_fetch_row($_pagi_result);
if (
$datos==""){
    echo 
"No se encontraron resultados para esta búsqueda.";
}else{
        foreach (
$datos as $val){
            echo 
"-".$val."<BR>";
        }
        echo 
"<BR>--------------------------------------------<BR>";
        while (
$datos mysql_fetch_row($_pagi_result)){
            foreach (
$datos as $val){
                echo 
"-".$val."<BR>";
            }
            echo 
"<BR>--------------------------------------------<BR>";
        }
//endwhile
}//endif
echo"<div align=center><p>".$_pagi_navegacion."</p></div>";
echo
"<div align=center><p>Mostrando Propiedades ".$_pagi_info."</p></div>";
mysql_close($conecta)
?>

¿Qué podría hacer para solucionarlo?