Foros del Web » Programando para Internet » PHP »

buscar rango!! se puede?

Estas en el tema de buscar rango!! se puede? en el foro de PHP en Foros del Web. Hola!!!!! deseo realizar una búsqueda de un campo en una BD mysql pero tengo el siguiente problema: En el campo figuran valores como: 100, 300, ...
  #1 (permalink)  
Antiguo 22/09/2004, 14:02
Avatar de sakul  
Fecha de Ingreso: julio-2002
Mensajes: 274
Antigüedad: 15 años, 4 meses
Puntos: 0
Pregunta buscar rango!! se puede?

Hola!!!!! deseo realizar una búsqueda de un campo en una BD mysql pero tengo el siguiente problema:

En el campo figuran valores como: 100, 300, 400, 1000, 1200, etc.

Pero las personas lo bucarán valores como 101, 130, 150, 390, etc.

Cómo puedo realizar dicha consulta para que el valor ingresado por el usuario devuelva el valor más cercano grabado en la Bd.

Ej.: Ingresa 99, devuelve el 100. Si ingresa 180, devuelve 100. Devolverá 300 sólo cuando ingrese valores superiores a 200 y menores a 350, puesto que el suiguiente valor en la tabla es 400.
  #2 (permalink)  
Antiguo 22/09/2004, 14:31
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 15 años, 11 meses
Puntos: 1
Saludos.

Porque no cargar un SELECT que le muestre a los usuarios los valores o Rangos de valores por los que pueda buscar??

Así es más fácil armar tu query con: $numero<=$busqueda o $numero=>$busqueda o Between $numero And $busqueda

Suerte
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #3 (permalink)  
Antiguo 22/09/2004, 15:46
Avatar de sakul  
Fecha de Ingreso: julio-2002
Mensajes: 274
Antigüedad: 15 años, 4 meses
Puntos: 0
me parece que tendré que hacer una lista desplegable dependiente que muestre los distintos valores...

Última edición por sakul; 22/09/2004 a las 15:51
  #4 (permalink)  
Antiguo 22/09/2004, 15:51
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 15 años, 11 meses
Puntos: 1
Si claro.

Código PHP:
$query "select * from tabla where campo between 100 and 300 limit 10"
Por ejemplo

Suerte
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #5 (permalink)  
Antiguo 22/09/2004, 16:05
 
Fecha de Ingreso: septiembre-2004
Mensajes: 1
Antigüedad: 13 años, 2 meses
Puntos: 0
Bueno yo tenia otra respuesta pero me ganaron de todas formas:

Supongamos que tienes un array con los numeros y estan ordenados de menor a mayor usas esto:
Código PHP:
function masCercano($numero$arrayDeNumeros) {
    for(
$i=0;$i<count($arrayDeNumeros);$i++) {
        if(
$numero $arrayDeNumeros[0]) {
            
            return(
$arrayDeNumeros[0]);
        } elseif(
$arrayDeNumeros[$i] <= $numero && $arrayDeNumeros[$i+1] >=$numero) {
            
$mitad = ($arrayDeNumeros[$i]+$arrayDeNumeros[$i+1])/2;
            if(
$numero $mitad) {
                
                return(
$arrayDeNumeros[$i+1]);
            } else {
                
                return(
$arrayDeNumeros[$i]);
            }
        } elseif(
$numero $arrayDeNumeros[count($arrayDeNumeros)-1]) {
            return(
$arrayDeNumeros[count($arrayDeNumeros)-1]);
        }
    }
}
$arrayNum = array(100,200,300,459,1025,30254);//numeros que tendra el array
$variable 256;//numero que se va a comparar
echo "Número más cercano a $variable :".masCercano($variable$arrayNum); 
  #6 (permalink)  
Antiguo 23/09/2004, 10:21
Avatar de sakul  
Fecha de Ingreso: julio-2002
Mensajes: 274
Antigüedad: 15 años, 4 meses
Puntos: 0
Gracias lalo_5_2000!!! eso era justo lo que estba buscando!! Ahora tengo que ver como hacer para mezclar tu función con mi base de datos mysql....
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 15:04.