Problema con selects.

Hola molestándote otra vez lo siento tengo un formulario para realizar una consulta...
http://www.masterhouse.com/masterhouse/index3.php
Donde se selecciona varios combos todo esta bien hasta allí pero cuando le aumento los combos para seleccionar que el precio este en un rango entre precio mínimo y máximo no me muestra la consulta.
este es el select q estoy usando
"select * from detalles where (precio>='$minimo' and precio<='$maximo') and (modo='$modo' and tipoinmueble='$tipoinmueble') and (distrito='$clasea' or distrito='$claseb' or distrito='$clasec' or distrito='$distrito') order by id desc";
Pero no me muestra nada o lo curioso es que si seleccionas indistinto para el precio mínimo y selecciones un precio máximo o juegas con esos precios allí si muestra la consulta no se que puede estar pasando. ¿Podría ser que el campo precio este en vchar? Y no en int? Y si cambio el campo precio a int esos precios tienen comas como haría para cambiarlos todos a decimales.
¿Osea para que tenga este formato 1.000.000.000 tengo unfor que agrega los precios a esos inmuebles allí tendría que darle formato a esos números ingresados? ¿Pero cómo podría hacer eso?
Me puedes ayudar por favor te lo agradecería.
Muchas gracias de antemano y disculma las molestias.

1 Respuesta

Respuesta
1
El tipo de datos debería ser double...
"select * from detalles where (precio BETWEEN '$minimo' AND '$maximo') and (modo='$modo' and tipoinmueble='$tipoinmueble') and (distrito='$clasea' or distrito='$claseb' or distrito='$clasec' or distrito='$distrito') order by id desc";
Para los valores predeterminados de tipoinmueble, etc, estos deberían ser % así no fallaría la consulta...
Por otra parte, y sin analizar mucho (disculpa es que estoy con sueño) el problema del "indistinto" podrías solucionar con 3 consultas, es decir a: mínimo indistinto, b: máximo indistinto y c:ambos con valores.
El problema adicional que se da con valores fuera de rangos se debería solucionar con el operador BETWEEN.
PD: Cualquier cosa sigo aquí :)
Siento la demora lo que pasa es que tenia bastante trabajo :( ¿bueno eso de las 3 consultas no lo entendí bien
tendría que utilizar sentencias if then else?
O con operadores lógicos tipo or para separar las 3 consultas
Gracias de antemano y disculpa la demora espero no causarte problemas gracias por tu ayuda.
Claro,
If ($Minimo=="Indistinto") {
$q="algo";
}else {
if ($Maximo=="Indistinto")
{
$q="algo2";
}else {
$q="algo2"; }
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas