Estoy haciendo la web de una inmobiliaria y en la sección de búsqueda de pisos quiero realizar una búsqueda para que vaya mostrando los pisos filtrando por Precio, habitaciones y demás.
Tengo un formulario con las listas desplegables y un php para que busque en una base de datos de Access y muestre el resultado de la búsqueda. Al realizar la búsqueda no muestra nada.
Aquí os dejo los códigos. Millones de gracias.
Código del Formulario:
Código:
<form action="busqueda.php" method="get"> <p>Zona:<br /> <select name="zona"> <option value="Bugibba" selected="selected">Bugibba</option> <option value="Gzira">Gzira</option> <option value="St Julian's">St Jualian's</option> <option value="Sliema">Sliema</option> <option value="Swiqi">Swiqi</option> <option value="Valleta">Valleta</option> </select> </p> <p> Número de habitaciones: <br /> <select name="habitaciones"> <option value="1" selected="selected">1 dormitorio</option> <option value="2">2 dormitorios</option> <option value="3">3 dormitorios</option> <option value="4">4 dormitorios</option> <option value="5">5 dormitorios</option> </select> </p> <p> Precio máximo: <br /> <select name="precio"> <option value="400" selected="selected">400</option> <option value="500">500</option> <option value="600">600</option> <option value="750">750</option> <option value="1000">1000</option> <option value="masde1000">Más de 1000</option> </select> </p> <input type="submit" value="Buscar" /> </form>
Código del php:
Código:
<body> <?php // Se especifica la ubicación de la base de datos Access (directorio actual) $db = getcwd() . "\\" . 'fervan.accdb'; // Se define la cadena de conexión $dsn = "DRIVER={Microsoft Access Driver (*.accdb)}; DBQ=$db"; // Se realiza la conexón con los datos especificados anteriormente $conn = odbc_connect( $dsn, '', '' ); if (!$conn) { exit( "Error al conectar: " . $conn); } $filtros = array(); if($zona != 0) { // Supongo que deberas verificar que el valor recibido es correcto y // corresponde a un registro en tu base de datos $filtros[] = "zona = $zona"; } if($habitaciones != 0) { // Supongo que deberas verificar que el valor recibido es correcto y // corresponde a un registro en tu base de datos $filtros[] = "habitaciones = $habitaciones"; } if($precio != 0) { // Supongo que deberas verificar que el valor recibido es correcto y // corresponde a un registro en tu base de datos $filtros[] = "precio <= $precio"; } // Despues de agregar cada campo, complementas tu consulta: if(count($filtros) > 0) { $filtro = ' WHERE ' . implode(' AND ', $filtros); } else { $filtro = ''; } $consulta = "SELECT * FROM pisos $filtro"; // Se ejecuta la consulta y se guardan los resultados en el recordset rs $rs = odbc_exec( $conn, $consulta ); if ( !$rs ) { exit( "Error en la consulta SQL" ); } // Se muestran los resultados while ( odbc_fetch_row($rs) ) { $resultado=odbc_result($rs,"Campo"); echo $resultado; } // Se cierra la conexión odbc_close( $conn ); ?> </body>