Estoy realizando este formulario de busqueda desplagable y me falla algo que no encuentro. El problema es que el campo del formulario que sería para seleccionar una ciudad me funciona correctamente pero el de seleccionar un tipo de vivienda no, a la hora de realizar la busqueda es como sino existiese. El problema viene de esta parte del código php (if (intval($_POST['tipovivienda']) > 0) {
$sql .= " AND propiedades.idvivienda = '" . intval($_POST['tipovivienda']) . "'";).
Si alguien encontrara el fallo me haría un gran favor para poder solucionarlo!!
Código PHP:
<?php
$conexion = mysql_connect('localhost', '', '');
mysql_select_db('');
?>
<html>
<head>
<title>Reporte de Propiedades</title>
</head>
<body>
<h1>Búsqueda de Propiedades</h1>
<form name="form1" method="post" action="Busqueda.php">
<label>Tipo de vivienda:<br />
<select name="tipovivienda" id="tipovivienda">
<option value="0">--Escoja tipo alquiler--</option>
<?php
$tablavivienda = mysql_query("SELECT * FROM vivienda ORDER BY id ASC"); // Seleccionamos las ciudades de la tabla ciudades
while ($registrovivienda = mysql_fetch_array($tablavivienda)) { // Vamos a repetir una Option (opcion), de la Lista Desplegable, por cada ciudad en la tabla
?>
<option value="<?php echo $registrovivienda['id']; ?>"><?php echo $registrovivienda['tipo']; ?></option>
<?php
} // termina la zona de repeticion
mysql_free_result($tablavivienda); // se libera la memoria usada por la tabla
?>
</select>
<br>
</label>
<label>Ciudad:<br />
<select name="ciudad" id="ciudad">
<option value="0">---Escoja la ciudad---</option>
<?php
$tablaciudades = mysql_query("SELECT * FROM ciudades ORDER BY id ASC"); // Seleccionamos las ciudades de la tabla ciudades
while ($registrociudad = mysql_fetch_array($tablaciudades)) { // Vamos a repetir una Option (opcion), de la Lista Desplegable, por cada ciudad en la tabla
?>
<option value="<?php echo $registrociudad['id']; ?>"><?php echo $registrociudad['nombre']; ?></option>
<?php
} // termina la zona de repeticion
mysql_free_result($tablaciudades); // se libera la memoria usada por la tabla
?>
</select>
</label>
<input type="submit" name="cmdBuscar" id="cmdBuscar" value="IR">
</form>
<table border="1">
<tr>
<td>Referencia</td>
<td>Foto</td>
<td>Tipo Vivienda</td>
<td>Ciudad</td>
<td>Población</td>
<td>Precio</td>
<td>Descripción</td>
</tr>
<?php
$sql = "SELECT propiedades.*, ciudades.*, vivienda.* FROM propiedades, ciudades, vivienda WHERE propiedades.idciudad = ciudades.id && propiedades.idvivienda = vivienda.id ";
if (isset($_POST['ciudad']) > 0) {
$sql .= " AND propiedades.idciudad = '" . ($_POST['ciudad']) . "'";;
if (intval($_POST['tipovivienda']) > 0) {
$sql .= " AND propiedades.idvivienda = '" . intval($_POST['tipovivienda']) . "'";
}
}
$sql .= " ORDER BY vivienda.tipo ASC";
$tabla = mysql_query($sql);
while ($registro = mysql_fetch_array($tabla)) {
?>
<tr>
<td><?php echo $registro['referencia']; ?></td>
<td><img src="ver.php?referencia=<?php echo $registro['referencia']; ?>" width="200" height="150" alt="" /></td>
<td><?php echo $registro['tipo']; ?></td>
<td><?php echo $registro['nombre']; ?></td>
<td><?php echo $registro['poblacion']; ?></td>
<td><?php echo $registro['precio']; ?></td>
<td><?php echo $registro['descripcion']; ?></td>
</tr>
<?php
}
mysql_free_result($tabla);
mysql_close($conexion);
?>
</table>
</body>
</html>