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ú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í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á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í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á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ínimo</option>
<option value="50">50 m²</option>
<option value="60">60 m²</option>
<option value="70">70 m²</option>
<option value="80">80 m²</option>
<option value="90">90 m²</option>
<option value="100">100 m²</option>
<option value="120">120 m²</option>
<option value="150">150 m²</option>
</select></td>
<td><select name="superfmax" id="select5">
<option selected value="">Máximo</option>
<option value="50">50 m²</option>
<option value="60">60 m²</option>
<option value="70">70 m²</option>
<option value="80">80 m²</option>
<option value="90">90 m²</option>
<option value="100">100 m²</option>
<option value="120">120 m²</option>
<option value="150">150 m²</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>
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?