Hola,
Aquí estoy de nuevo, he estado probando el codigo y me daba algunos pequeños errores a la hora de adaptarlo pero ya he conseguido que no de ningún error. Pero el problema es que no funciona, funciona el desplegable de tipovivienda y el de ciudad pero el de precio no funciona, es como si no entrase dentro del registro precio y no lo recorriese buscando la información...
Se te ocurre algo donde falte algún dato?
Tengo que decirte que el desplegable del precio lo he hecho manual no dinámico ya que no tengo una tabla especifica para el precio... Puede ser que el problema esté en ligar el desplegable con el php ?
Te dejo el código limpio de errores:
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="Busqueda2.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 nombre 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>
<br>
<label>Precio máximo<br>
<select name="precio" id="precio">
<option value="0">--Cualquier precio--</option>
<option value="1">Máximo 200€</option>
<option value="2">Máximo 400€</option>
<option value="3">Máximo 600€</option>
<option value="4">Máximo 800€</option>
</select>
<br>
</label>
<input type="submit" name="cmdBuscar" id="cmdBuscar" value="IR">
</form>
<br>
<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['tipovivienda'])) {
$sql .= " AND propiedades.idvivienda = '" . ($_POST['tipovivienda']) . "'";
if (intval($_POST['ciudad']) > 0) {
$sql .= " AND propiedades.idciudad = '" . intval($_POST['ciudad']) . "'";
}
}
$sql .= " ORDER BY referencia ASC";
$tabla = mysql_query($sql);
switch ($_POST['precio']){
case 1:
$precio_bajo=0;
$precio_alto=200;
break;
case 2:
$precio_bajo=201;
$precio_alto=400;
break;
case 3:
$precio_bajo=401;
$precio_alto=600;
break;
case 4:
$precio_bajo=601;
$precio_alto=800;
break;
default:
$precio_bajo=0;
$precio_alto=10000000000000;
}
while ($registro = mysql_fetch_array($tabla)) {
if (($registro['precio'] < $precio_alto) && ($registro['precio'] > $precio_bajo))
?>
<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>