PHP - error en buscador de precios

 
Vista:
sin imagen de perfil

error en buscador de precios

Publicado por David (4 intervenciones) el 10/10/2017 06:02:00
Hola a todos y gracias de antemano por su ayuda.

Estoy desarrollando un buscador con varios parámetros de búsqueda, el problema que tengo es al elegir el rango de precios, ya que solo me deja seleccionar uno de estos rangos.

el código con el que tengo problema es este:

1
2
3
4
5
6
7
8
9
10
11
if ($precio = 6000 || $banos != "" || $recamaras != "" || $metros != "" || $estacionamiento != "") {
    $query = "SELECT * FROM empresa WHERE precio >5900 && recamaras like ".sqlValue($recamaras."%", "text")." && banos like ".sqlValue($banos."%", "text")." && metros like ".sqlValue($metros."%", "text")." && estacionamiento like ".sqlValue($estacionamiento."%", "text")." ORDER BY nombre ASC";
    $queEmp = mysql_query($query, $conexion);
    $total = mysql_num_rows($queEmp);
}elseif ($precio = 2000 || $banos != "" || $recamaras != "" || $metros != "" || $estacionamiento != "") {
    $query = "SELECT * FROM empresa WHERE precio <5900 && recamaras like ".sqlValue($recamaras."%", "text")." && banos like ".sqlValue($banos."%", "text")." && metros like ".sqlValue($metros."%", "text")." && estacionamiento like ".sqlValue($estacionamiento."%", "text")." ORDER BY nombre ASC";
    $queEmp = mysql_query($query, $conexion);
    $total = mysql_num_rows($queEmp);
} else {
  echo "no se encontraron resultados";
}

Y otra vez gracias a quien este dispuesto a ayudarme.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 100
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

error en buscador de precios

Publicado por Juan López (43 intervenciones) el 10/10/2017 14:54:10
Buenas David

Sería más fácil si nos dijeras exactamente que tiene qué hacer tu consulta porque tal y como las tienes es bastante lógico, un precio es 6000 0 es menor, pero las dos cosas a la vez no podrían ser en principio o sí?

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

error en buscador de precios

Publicado por David (4 intervenciones) el 10/10/2017 15:23:40
Hola Juan, muchas gracias por tu respuesta.

lo que necesito es que cuando seleccione un número que sea igual a 6000, me regrese todos los valores mayores a 5900 en mi base de datos, esto lo hace bien mi código, el problema es cuando pongo la la segunda sentencia ifelse en el cual necesito que cuando seleccione un número = a 2000 me regrese todos los números < 5900, pero no me regresa estos números, me sigue regresando la primera sentencia (los números mayores a 5900), esto lo esto haciendo desde un select con dos opciones.

¿Cuál crees que sea mi error?

De todas maneras dejo mi archivo adjunto para que lo puedas ver mejor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 26
Ha aumentado su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

error en buscador de precios

Publicado por juanki (10 intervenciones) el 10/10/2017 22:06:32
Hola

Para comparar se usa ==, tú estás usando solo uno, eso es una asignación. Estas dando a $precio en valor de 6000 en el primer if.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

error en buscador de precios

Publicado por David (4 intervenciones) el 10/10/2017 22:21:11
Perfecto Juanki tienes toda la razón, ese era el problema.

Muchas gracias de verdad.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

error en buscador de precios

Publicado por David (4 intervenciones) el 18/10/2017 15:26:28
Hola , tengo una pregunta más.
Ya funciona correctamente el rango de precios, pero ahora lo que necesito es que si alguno de los campos no coincide con el precio no me muestre ningún resultado,
¿como puedo lograr eso?
las demás variables como $banos, $metros, $recamaras, etc. si toman en cuenta a los demás valores y si no coinciden no me muestran resultado, con el único campo que no funciona es con el $precio, ¿porqué sucede eso?

te dejo mi código aqui:
gracias
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
if ($precio == 6000 || $banos !== "" || $recamaras !== "" || $metros !== "" || $estacionamiento !== "" || $ubicacion !== "" || $tipopropiedad !== "" || $tipotransaccion !== "") {
    $query = "SELECT * FROM inmuebles WHERE precio >5000000 AND precio <10000001 && recamaras like ".sqlValue($recamaras."%", "text")." && banos like ".sqlValue($banos."%", "text")." && metros like ".sqlValue($metros."%", "text")." && estacionamiento like ".sqlValue($estacionamiento."%", "text")." && ubicacion like ".sqlValue($ubicacion."%", "text")." && tipopropiedad like ".sqlValue($tipopropiedad."%", "text")." && tipotransaccion like ".sqlValue($tipotransaccion."%", "text")." ORDER BY nombre ASC";
    $queEmp = mysql_query($query, $conexion);
    $total = mysql_num_rows($queEmp);
}
if ($precio == 2000 || $banos !== "" || $recamaras !== "" || $metros !== "" || $estacionamiento !== "" || $ubicacion !== "" || $tipopropiedad !== "" || $tipotransaccion !== "") {
    $query = "SELECT * FROM inmuebles WHERE precio <5000001 AND precio >999999 && recamaras like ".sqlValue($recamaras."%", "text")." && banos like ".sqlValue($banos."%", "text")." && metros like ".sqlValue($metros."%", "text")." && estacionamiento like ".sqlValue($estacionamiento."%", "text")." && ubicacion like ".sqlValue($ubicacion."%", "text")." && tipopropiedad like ".sqlValue($tipopropiedad."%", "text")." && tipotransaccion like ".sqlValue($tipotransaccion."%", "text")." ORDER BY nombre ASC";
    $queEmp = mysql_query($query, $conexion);
    $total = mysql_num_rows($queEmp);
}
if ($precio == 7000 || $banos !== "" || $recamaras !== "" || $metros !== "" || $estacionamiento !== "" || $ubicacion !== "" || $tipopropiedad !== "" || $tipotransaccion !== "") {
    $query = "SELECT * FROM inmuebles WHERE precio >10000000 AND precio <25000001 && recamaras like ".sqlValue($recamaras."%", "text")." && banos like ".sqlValue($banos."%", "text")." && metros like ".sqlValue($metros."%", "text")." && estacionamiento like ".sqlValue($estacionamiento."%", "text")." && ubicacion like ".sqlValue($ubicacion."%", "text")." && tipopropiedad like ".sqlValue($tipopropiedad."%", "text")." && tipotransaccion like ".sqlValue($tipotransaccion."%", "text")." ORDER BY nombre ASC";
    $queEmp = mysql_query($query, $conexion);
    $total = mysql_num_rows($queEmp);
}
if ($precio == 8000 || $banos !== "" || $recamaras !== "" || $metros !== "" || $estacionamiento !== "" || $ubicacion !== "" || $tipopropiedad !== "" || $tipotransaccion !== "") {
    $query = "SELECT * FROM inmuebles WHERE precio >25000000 && recamaras like ".sqlValue($recamaras."%", "text")." && banos like ".sqlValue($banos."%", "text")." && metros like ".sqlValue($metros."%", "text")." && estacionamiento like ".sqlValue($estacionamiento."%", "text")." && ubicacion like ".sqlValue($ubicacion."%", "text")." && tipopropiedad like ".sqlValue($tipopropiedad."%", "text")." && tipotransaccion like ".sqlValue($tipotransaccion."%", "text")." ORDER BY nombre ASC";
    $queEmp = mysql_query($query, $conexion);
    $total = mysql_num_rows($queEmp);
}
if ($precio == 0 || $banos !== "" || $recamaras !== "" || $metros !== "" || $estacionamiento !== "" || $ubicacion !== "" || $tipopropiedad !== "" || $tipotransaccion !== "") {
    $query = "SELECT * FROM inmuebles WHERE precio >100 && recamaras like ".sqlValue($recamaras."%", "text")." && banos like ".sqlValue($banos."%", "text")." && metros like ".sqlValue($metros."%", "text")." && estacionamiento like ".sqlValue($estacionamiento."%", "text")." && ubicacion like ".sqlValue($ubicacion."%", "text")." && tipopropiedad like ".sqlValue($tipopropiedad."%", "text")." && tipotransaccion like ".sqlValue($tipotransaccion."%", "text")." ORDER BY nombre ASC";
    $queEmp = mysql_query($query, $conexion);
    $total = mysql_num_rows($queEmp);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar