Ver Mensaje Individual
  #14 (permalink)  
Antiguo 17/06/2009, 15:22
ruizdeeguilaz
 
Fecha de Ingreso: junio-2009
Ubicación: Valencia
Mensajes: 45
Antigüedad: 15 años, 8 meses
Puntos: 8
Respuesta: Precio máximo con php

Primero debes obtener 'desde' y 'hasta' para el precio seleccionado. Tal y como tienes el código, puedes aprovechar la query para obtener los rangos de precios y guardarlos en un array asociativo:

Código PHP:
<?php
  
/* Arrays para guardar los valores 'desde' y 'hasta' de los rangos de precios */    
  
$rangosPreciosDesde = array();
  
$rangosPreciosHasta = array();

  
$tablaprecios mysql_query("SELECT * FROM precios ORDER BY id ASC"); // Seleccionamos los precios de la tabla precio
  
while ($registroprecio mysql_fetch_array($tablaprecios)) { // Vamos a repetir una Option (opcion), de la Lista Desplegable, por cada precio en la tabla

    /* Extraemos los valores 'desde' y 'hasta' y los guardamos en los arrays que hemos creado */    
    
$rangoPreciosDesde[$registroprecio['id']] = $registroprecio['desde'];
    
$rangoPreciosHasta[$registroprecio['id']] = $registroprecio['hasta'];

?>
    <option value="<?php echo $registroprecio['id']; ?>"><?php echo $registroprecio['texto']; ?></option>
<?php
  
// termina la zona de repeticion
  
mysql_free_result($tablaprecios); // se libera la memoria usada por la tabla
?>
Como digo, obtenemos los valores 'desde' y 'hasta' para el precio seleccionado (si se ha seleccionado) y luego, como bien dice cesarpi80 usamos estos valores para filtrar la query junto a las demás condiciones:
Código PHP:
<?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']) . "'";
    }
}

/* Aprovechando los arrays anteriores, obtenemos los valores 'desde' y 'hasta' para el precio seleccionado por el usuario */
if (isset($_POST['precio'])
{
  
$desde $rangoPreciosDesde[$_POST['precio']];
  
$hasta $rangoPreciosHasta[$_POST['precio']];

  
/* Añadimos los criterios a la query */
  
$sql .= " AND vivienda.precio >= ' . $desde . ' AND vivienda.precio <= ' . $hasta;

}

$sql .= " 
ORDER BY referencia ASC";
$tabla = mysql_query($sql);
while ($registro = mysql_fetch_array($tabla)) {
?>
Espero que se entienda bien la explicación. He puesto comentarios en el código para facilitar el entendimiento.

Salu2,
Carlos.

Última edición por ruizdeeguilaz; 17/06/2009 a las 15:28