Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/08/2010, 15:48
ingleonidas
 
Fecha de Ingreso: abril-2010
Mensajes: 87
Antigüedad: 14 años
Puntos: 1
Exclamación FIN Buscador Avanzado Inmobiliaria

Buenas mis estimados. Recurro a la comunidad para ver si entre todos podemos terminar este ultimo paso finalizando asi el buscador avanzado. La historia es asi:

BD:
ID_Prueba int(11)
Nombre varchar(100)
Apellidos varchar(100)
Titulo varchar(100)
Mtscuadrados int(11)
Banos int(11)
Habitaciones int(11)
idCiudad int(11)
precioVenta int(11)
precioRenta int(11)
tipoInmueble varchar(255)
Descripcion varchar(255)
fechaIng date
imagen blob BINARY

FORM:
Código PHP:
<form name="form1" method="post" action="buq2.php">
    <label>Buscar:
    <input type="text" name="txtBusqueda" id="txtBusqueda">
    Ciudad:
    <select name="selCiudad" id="selCiudad">
        <option value="-1" selected>Todas</option>
<?php
    $tablaciudades 
mysql_query("SELECT * FROM ciudades ORDER BY nombre DESC"); // 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>
    Ambientes: 
<select name="selAmbientes" id="selAmbientes"> 
<option value="-1" selected>Todos</option>
<?php //seleccion de ambientes
for($i=1;$i<=10;$i++) {
?>
<option value="<?php echo $i;?>"><?php echo $i?></option>
<?php
}
?>
</select>
</select>  
Precio Venta:  
<select name="precio">  
<option value="">Mostrar Todos</option>  
<option value="10000-20000">$10000 a $20000</option>  
<option value="20000-30000">$20000 a $30000</option>  
</select>  
    </label>
    <input type="submit" name="cmdBuscar" id="cmdBuscar" value="IR">
</form>
Buscador:
Código PHP:
<?php //Esto es lo que devuelve segun los datos de la tabla de arriba
$sql "SELECT prueba.*, ciudades.* FROM prueba, ciudades WHERE prueba.idciudad = ciudades.id ";
if (isset(
$_POST['txtBusqueda'])) {
    
$sql .= " AND prueba.titulo LIKE '%" $_POST['txtBusqueda'] . "%' ";
    if (
intval($_POST['selCiudad']) > 0) {
        
$sql .= " AND prueba.idciudad = '" intval($_POST['selCiudad']) . "'";
    }
    if (
intval($_POST['selAmbientes']) > 0) {
$sql .= " AND Habitaciones = '" intval($_POST['selAmbientes']) . "'";
}
    if (
intval($_POST['precio']) > 0) {
$precio=$_POST['precio']; # ya esta el nombre asociado   
$ed=explode("-",$precio); #esto te crea un array con la separacion del rango     
$precio1=$ed[0]; #obtienes el primer parametro del rango   
$precio2=$ed[1];  #obtienes el segundo parametro del rango   
$query=mysql_query("SELECT precioVenta FROM prueba WHERE precio BETWEEN '$precio1' and '$precio2'") or die (mysql_error());  
}
}
$sql .= " ORDER BY ciudades.nombre ASC";
$tabla mysql_query($sql);
while (
$registro mysql_fetch_array($tabla)) {
?>
La cuestion es que si realizo la busqueda con los 3 primeros parametros a la vez (el like, ciudad y ambientes)sin activar la cuarta opcion (precio) la consulta se realiza satisfactoriamente. Ahora, incluyo en la busqueda esta ultima (la 4º opcion, o sea, todas las opciones a la vez) y el resultado es nulo (no trae absolutamente nada).
Agradezco de antemano ayudas, orientacion, comentarios y toda critica constructiva..
Desde ya, saludos!!!
Leonidas

PD: la variable precio corresponde al campo precioVenta de la BD
Abrazo