Foros del Web » Programando para Internet » PHP »

Duda obtener valor aproximado en búsqueda

Estas en el tema de Duda obtener valor aproximado en búsqueda en el foro de PHP en Foros del Web. Hola a todos, no consigo ver cómo hacer una cosa, creo que realmente no es muy complicada... pero bueno, ya me direis. Se trata de ...
  #1 (permalink)  
Antiguo 10/09/2009, 09:38
 
Fecha de Ingreso: agosto-2008
Mensajes: 166
Antigüedad: 15 años, 7 meses
Puntos: 1
Duda obtener valor aproximado en búsqueda

Hola a todos, no consigo ver cómo hacer una cosa, creo que realmente no es muy complicada... pero bueno, ya me direis. Se trata de que de una tabla, con una búsqueda obtengo 50 registros, del tipo:
Id Nombre
1 Telefono
2 Silla
3 Mesa
......
50 Calculadora


Luego en otra consulta que no tiene mucho que ver, por ejemplo obtengo 42.13, y quiero sacar por ese número, el objeto de la primera tabla más aproximado, que será el 42. Hasta ahí sencillo, porque sería redondeando, pero puede darse el caso que aparezca un número como -20 (y aquí quiero obtener el 1- telefono) o 126, y aquí quiero obtener el 50 - Calculadora). ¿Cómo podría hacerlo?

Gracias y un saludo!
  #2 (permalink)  
Antiguo 10/09/2009, 10:13
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 1 mes
Puntos: 81
Respuesta: Duda obtener valor aproximado en búsqueda

Mmm... trato de entender lo del caso en el numero negativo pero no logro comprenderlo en tu texto.

Suponiendo que tienes
Id: 50; Nombre: Calculadora

Si tienes un numero positivo en la proxima consulta que sea 42.13 tu quieres hacer esto:
50+42

En el caso de un numero negativo quieres que haga esto?:
50-20 ???

Podrias explicarlo de esta manera please.

Gracias!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 10/09/2009, 13:40
 
Fecha de Ingreso: agosto-2008
Mensajes: 166
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Duda obtener valor aproximado en búsqueda

Uhm. Creo que no me expliqué bien (Sorry!!), lo vuelvo a redactar de nuevo aclarándolo un poco:

Hay una tablas con registros así, hasta 50 registros más o menos
Id Nombre
1 Telefono
2 Silla
3 Mesa
......
50 Calculadora


Y luego tengo un bucle que me genera unos números (aquí ya no entro en detalle), son decimales, y pueden abarcar cualquier rango. Entonces cuando este bucle me saca un número, quiero obtener el registro de la tabla que expuse antes, cuyo ID se acerque más a ese número. Es decir, si el bucle me saca 42.13, obtener de la tabla el número 42. Hasta ahí bien, porque puedo redondear. Pero en caso de que el bucle me saque un número negativo por ejemplo -20, yo querria que me sacara el primer registro, es decir "Telefono", y si sacara un numero muy grande, por ejemplo el 193, que me dijera el último registro de la tabla, en este caso "Calculadora".

La verdad que a veces preguntar es bueno, porque mientras lo escribia se me ha ocurrido una forma de hacerlo con 3 ifs, pero no lo veo muy eficiente, a ver si alguien se le ocurre como hacerlo bien :D

Gracias!!
  #4 (permalink)  
Antiguo 10/09/2009, 13:59
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 1 mes
Puntos: 81
Respuesta: Duda obtener valor aproximado en búsqueda

Entonces puedes hacer algo como esto:
Código PHP:
$sqK "SELECT Id,Nombre
    FROM tabla"
;
$resulK mysql_query($sqK);
$i=0;
while(
$datK mysql_fetch_array($resulK)){
    
$arrReg[$datK['Id']]['Nombre']    = $datK['Nombre'];
    
$i++;
}
$tunumeroRaro="40.2";
echo 
'<br>ID: '.round($tunumeroRaro,0).' - Nombre: '.$arrReg[round($tunumeroRaro,0)]['Nombre']; 
Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
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 17:19.