Hola a tod@s! Ésta es mi primera consulta en el foro. Aunque siempre he sido muy autodidacta, esta vez no he encontrado respuestas buscando en google.
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>