Sin mas vueltas comento mi problema: mi web se basa en el típico buscador y filtrado de resultados.
En mi base de datos tengo 10 tablas aprox. donde una de ellas se vincula por ID a otras tablas (...).
Mi idea es buscar alojamientos en la región norte de mi país (arg). y los filtros para optimizar serían por precio, tipo de alojamiento y si el usuario desea cambiar de destino.
Tengo un formulario con combos <SELECT> que envían variables a un php y muestra los resultados, en ello funciona correcto, pero lo que quiero es agregar un listado de filtros para simplificar el resultado obtenido por el formulario; el problema es que no se como modificar el valor de las variables para dar el resultado que se obtendrá al seleccionar y acumular los filtros, similar a la dinámica de este sitio Tripadvisor - resultados con la diferencia de que utiliza un buscador simple (input text).
Este seria el código del formulario:
Código HTML :
<form id="alojamiento-buscador" action="test.php" method="post"> <fieldset> <div> <label for="destinos">Destino</label> <select name="destinos"> <option value="1">Catamarca</option> <!-- paso ID de las provincias--> <option value="2">Jujuy</option> <option value="3">Salta</option> <option value="4">Santiago del Estero</option> <option value="5">Tucumán</option> </select> </div> <div> <label for="estimados">Precio estimado</label> <!-- precio estimado de los diferentes alojamientos--> <select name="estimados"> <option value="200 AND 500">200 a 500 $ARS</option> <option value="500 AND 690" >500 a 690 $ARS</option> <option value="900 AND 1000">900 a 1000 $ARS</option> <option value="300 AND 1900">300 a 1900 $ARS</option> </select> </div> <div> <label for="tipo_aloj">Tipo de alojamiento</label> <!-- los diferentes tipos de alojamientos--> <select name="tipo_aloj"> <option value='hotel'>Hotel</option> <option value='hostal'>Hostal</option> <option value='posada'>Posada</option> <option value='cabana'>Cabaña</option> </select> </div> <div> <input type="submit" name="Buscar" value="Buscar"> </div> </fieldset> </form>
mi resultado php:
Código PHP :
//conexion al gestor de base de datos mysql $conexion = mysql_connect("localhost","root",""); //seleccion de base de base de datos mysql_select_db("noa_web"); //variables $destinos = $_GET['destinos']; $estimados = $_GET['estimados']; $tipo_aloj = $_GET['tipo_aloj']; //consulta $consulta = "SELECT * FROM alojamiento AS aloj INNER JOIN provincias AS prov ON aloj.provincia = prov.id_provincia WHERE aloj.provincia = '$destinos' AND aloj.tipo_alojamiento = '$tipo_aloj' AND aloj.precio BETWEEN $estimados"; $resultado = mysql_query($consulta,$conexion);
muestro resultados :
Código PHP :
<?php while($fila = mysql_fetch_assoc($resultado)){ echo'<article id="body-articulo">'; echo'<h2><a href="">'.$fila['nombre_aloj'].'</a>'.', '.$fila['localidad'].'</h2>'; echo'<div id="img-articulo">'; echo'<figure><img src="" /></figure>'; echo'</div>'; echo'<div id="info-articulo">'; echo'<div>'.$fila['nombre_prov'].'</div>'; echo'<div>comentario</div>'; echo'<div>valoracion</div>'; echo'</div>'; echo'</article>'; echo'<br />'; }; ?>
Estuve averiguando que los filtros se aplican por medio de formularios y preservando variables con sesión y cookies, no se como usarlos y como manipularlos para que funcionen.
Desde ya muchas gracias por su tiempo, y correcciones bienvenidas sean.