Foros del Web » Programando para Internet » PHP »

buscar en una lista

Estas en el tema de buscar en una lista en el foro de PHP en Foros del Web. Hola necesito de su ayuda... tengo el siguiente problema necesito buscar un valor tipo flotante de una lista dada es decir tengo el siguiente valor ...
  #1 (permalink)  
Antiguo 20/05/2011, 10:44
Avatar de isisra  
Fecha de Ingreso: diciembre-2009
Mensajes: 68
Antigüedad: 14 años, 4 meses
Puntos: 2
Exclamación buscar en una lista

Hola necesito de su ayuda... tengo el siguiente problema necesito buscar un valor tipo flotante de una lista dada es decir tengo el siguiente valor

valor=0.43

listas de valores
0,1250
0,2500
0,3125
0,3750
0,5000
0,6250
0,7500
0,8750
1,0000
1,1250
1,2500

estos valores puden variar depende de la tabla de mysql que consulte
el resultado correcto sera el valor que no pase de los valores de la lista
es decir en este caso el resultado para (0,43) sera (0,3725) porque no
se pasa

ayudenme gracias
  #2 (permalink)  
Antiguo 20/05/2011, 10:51
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
Respuesta: buscar en una lista

Tienes que realizar la consulta a tu BD, con mysql_fetch_array, obtienes la lista de todos los datos que ocupas, y ya solo los vas recorriendo para hacer tu validación:
Código PHP:
$valor 0.43;
while(
$row mysql_fetch_array($resultado))
{
      if(
$row["campo"] <= $valor)
      {
           
$valor $row["campo"];
       }

Algo asi creo que seria
  #3 (permalink)  
Antiguo 20/05/2011, 10:52
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: buscar en una lista

quieres buscar todos los valores que no pasen del valor buscado, o el más cercano sin pasarse?

en cualquier caso son comparaciones las que debes hacer.

y bueno xtimed, no dijo que los sacaba de una base de datos, solo como curiosidad
  #4 (permalink)  
Antiguo 20/05/2011, 10:55
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: buscar en una lista

Si es mysql, con algo así:
mysql_query("select valor from mi_tabla where valor <= $mivalor LIMIT 1");

aqui indicas que te de resultados menores o iguales a un valor y el LIMIT 1 es para indicarle que sólo te de uno, en vez de que te de todos y tengas que ir buscando.
  #5 (permalink)  
Antiguo 20/05/2011, 10:55
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
Respuesta: buscar en una lista

Cita:
Iniciado por memoadian Ver Mensaje
quieres buscar todos los valores que no pasen del valor buscado, o el más cercano sin pasarse?

en cualquier caso son comparaciones las que debes hacer.

y bueno xtimed, no dijo que los sacaba de una base de datos, solo como curiosidad
Cita:
estos valores puden variar depende de la tabla de mysql que consulte
Por eso puse ese codigo, me dio a entender que los datos son de una base de datos
  #6 (permalink)  
Antiguo 20/05/2011, 10:56
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: buscar en una lista

Cita:
Iniciado por xtimed Ver Mensaje
Por eso puse ese codigo, me dio a entender que los datos son de una base de datos
tienes razón, error mio

la cruda (resaca) no es buena

Cita:
Iniciado por ocp001a Ver Mensaje
Si es mysql, con algo así:
mysql_query("select valor from mi_tabla where valor <= $mivalor LIMIT 1");

aqui indicas que te de resultados menores o iguales a un valor y el LIMIT 1 es para indicarle que sólo te de uno, en vez de que te de todos y tengas que ir buscando.
pero eso te devuelve el primer valor que encuentra o el más cercano?
  #7 (permalink)  
Antiguo 20/05/2011, 11:16
Avatar de isisra  
Fecha de Ingreso: diciembre-2009
Mensajes: 68
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: buscar en una lista

gracias por todas las respuestas

lo solucione de esta manera

Código:
SELECT valor FROM mi_tabla WHERE valor <= $mivalor;
solo le agrege esto para que me tomara solo un valor

Código:
SELECT regis FROM tablename1 WHERE regis<=$mivalor ORDER BY regis DESC LIMIT 1;
gracias siempre encuentro la solucion aqui
  #8 (permalink)  
Antiguo 20/05/2011, 11:22
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: buscar en una lista

Cita:
Iniciado por memoadian Ver Mensaje
tienes razón, error mio

la cruda (resaca) no es buena



pero eso te devuelve el primer valor que encuentra o el más cercano?
Con la condición <= indicas un valor igual o inferior, efectivamente faltaba el ordenar, con ORDER BY, y el LIMIT es por que mysql podría encontrar (teoricamente) miles de de valores que cumplieran la condición, y con LIMIT 1 sólo tomaría 1.
  #9 (permalink)  
Antiguo 20/05/2011, 11:30
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: buscar en una lista

Cita:
Iniciado por ocp001a Ver Mensaje
efectivamente faltaba el ordenar, con ORDER BY
por eso lo decia, sin el ORDER BY y el limit 1 te soltaba la primera coincidencia que encontrara sin ser necesariamente el más cercano.

Etiquetas: php+mysql, busquedas
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 03:08.