Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Problema complicado con consulta

Estas en el tema de Problema complicado con consulta en el foro de Bases de Datos General en Foros del Web. Hola Foreros aquí nuevamente en problemas Resulta que preparé para una inmobiliaria un sitio con un buscador de distintos campos entonces hice esto Código: select ...
  #1 (permalink)  
Antiguo 28/05/2008, 09:39
 
Fecha de Ingreso: febrero-2004
Mensajes: 134
Antigüedad: 20 años, 9 meses
Puntos: 0
Problema complicado con consulta

Hola Foreros aquí nuevamente en problemas
Resulta que preparé para una inmobiliaria un sitio con un buscador de distintos campos entonces hice esto

Código:
select * from propiedades as p 
join zona as z on z.id_z=p.id_zona
join tipo as t on t.id_t=p.id_tipo 
where (operacion = '$_REQUEST[operacion]' or '$_REQUEST[operacion]' ='')  
and (id_zona = '$_REQUEST[id_zona]' or '$_REQUEST[id_zona]' ='') 
and (id_tipo = '$_REQUEST[id_tipo]' or '$_REQUEST[id_tipo]' ='') 
and (ambientes = '$_REQUEST[ambientes]' or '$_REQUEST[ambientes]' ='')
or (codigo = '$_REQUEST[codigo]')
Y anda increíble.

Ahora me pidieron que agregara una búsqueda por precio e hice esto...

[CODE]select * from propiedades as p
join zona as z on z.id_z=p.id_zona
join tipo as t on t.id_t=p.id_tipo
where (operacion = '$_REQUEST[operacion]' or '$_REQUEST[operacion]' ='')
and (id_zona = '$_REQUEST[id_zona]' or '$_REQUEST[id_zona]' ='')
and (id_tipo = '$_REQUEST[id_tipo]' or '$_REQUEST[id_tipo]' ='')
and (ambientes = '$_REQUEST[ambientes]' or '$_REQUEST[ambientes]' ='')
and (precio <= '$_REQUEST[precio]' or '$_REQUEST[precio]' ='')
or (codigo = '$_REQUEST[codigo]')[/CODE

Pero no sirve y no se porque...será que pusieron los precios con punto?
Ej: 150.000

Otro problema que tengo es la moneda ya que tienen algunos precios en dólares y otros en pesos y se me ocurrió...

Código:
select * from propiedades as p 
join zona as z on z.id_z=p.id_zona
join tipo as t on t.id_t=p.id_tipo 
where (operacion = '$_REQUEST[operacion]' or '$_REQUEST[operacion]' ='')  
and (id_zona = '$_REQUEST[id_zona]' or '$_REQUEST[id_zona]' ='') 
and (id_tipo = '$_REQUEST[id_tipo]' or '$_REQUEST[id_tipo]' ='') 
and (ambientes = '$_REQUEST[ambientes]' or '$_REQUEST[ambientes]' ='')
and (precio <= '$_REQUEST[precio]' or '$_REQUEST[precio]' ='')
if('$_REQUEST[precio]' ='',pecio='',moneda='$_REQUEST[moneda]')
or (codigo = '$_REQUEST[codigo]')
Y nada...

Alguien se dá cuenta donde puede estar el problema y como lo puedo resolver?
Nuevamente infinitas gracias por tomarse la molestia de leer y ayudarme con mis matetes

Última edición por GatorV; 28/05/2008 a las 10:08
  #2 (permalink)  
Antiguo 28/05/2008, 10:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Problema complicado con consulta

Hola Claugtrs,

¿Que tipo de dato es precio?, si es del tipo texto, no podrás usar el operador de <= directamente, necesitaras usar la función CAST de MySQL.

Por otro lado tu IF esta mal, así no se maneja en el WHERE, ya que el IF solo a mi conocimiento puede ir en la parte de SELECT.

Tema trasladado a Bases de Datos.
  #3 (permalink)  
Antiguo 28/05/2008, 10:31
 
Fecha de Ingreso: febrero-2004
Mensajes: 134
Antigüedad: 20 años, 9 meses
Puntos: 0
Respuesta: Problema complicado con consulta

Gracias por lo la función cast no la conocía.
Con respecto a la moneda la única forma es unificándolas?
O hacer un buscador para moneda dolar y otro para pesos?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:14.