Foros del Web » Programando para Internet » PHP »

Buscar con PHP y MySQL con rangos

Estas en el tema de Buscar con PHP y MySQL con rangos en el foro de PHP en Foros del Web. Esta pregunta tiene que ver tanto con PHP como con MySQL pero decidí hacerla aquí. Tengo una base de datos donde el usuario buscará ciertos ...
  #1 (permalink)  
Antiguo 22/08/2012, 11:46
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 11 meses
Puntos: 15
Buscar con PHP y MySQL con rangos

Esta pregunta tiene que ver tanto con PHP como con MySQL pero decidí hacerla aquí.

Tengo una base de datos donde el usuario buscará ciertos activos que están en la base de datos, pero quiero que la búsqueda sea por rangos, es decir. 0-999, 1000-1999 y que a la hora de seleccionar dicho rango, te muestre todos los activos de este rango.

La duda es que tengo que poner por ejemplo en el VALUE del formulario, y a la hora de pasarlo en MySQL como hacer la declaración.

Un saludo.
  #2 (permalink)  
Antiguo 22/08/2012, 11:48
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 12 años, 3 meses
Puntos: 27
Respuesta: Buscar con PHP y MySQL con rangos

¿Como? no me he enterado de nada
  #3 (permalink)  
Antiguo 22/08/2012, 11:50
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Buscar con PHP y MySQL con rangos

Sólo filtra los datos:

WHERE columna BETWEEN valor_inferior AND valor_superior
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 22/08/2012, 11:52
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Buscar con PHP y MySQL con rangos

Los valores en el value los debes poner de forma "normal". Lo que buscas es cómo consultar, para consultar rango lo puedes hacer con btween:

mysql_query("select datos from mitabla where valor between 1 and 100")

Te daría los registros que tenga un valor entre 1 y 100. Claro, debes poner los nombre de tablas y campos de lo que tienes.
  #5 (permalink)  
Antiguo 22/08/2012, 12:11
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 11 meses
Puntos: 15
Respuesta: Buscar con PHP y MySQL con rangos

Muchas gracias. Este es el formulario con los rangos.

<select name="vcomercial" type="text" size="35" class="buscar2" />
<option>Buscar todo
<option>0 - 49
<option>50 – 99
<option>100 – 499
<option>500 – 999
<option>1,000 – 1,499
<option>1,500 – 1,999
<option>2,000 – 4,999
<option>5,000 – 9,999
<option>10,000 – 14,999
<option>15,000 – 29,999
<option>30,000 – 49,999
<option>50,000 – 74,999
<option>75,000 – 99,999
<option>100,000 – 149,999
<option>150,000 – 249,999
<option>250,000 – 349,999
<option>350,000 – 449,999
<option>450,000 – 499,999
<option>500,000 – 749,999
<option>750,000 – 999,999
<option>1,000,000 – 1,099,999
<option>1,100,000 – 1,149,999
<option>1,150,000 – 1,249,999
<option>1,250,000 – 1,349,999
<option>1,350,000 – 1,449,999
<option>1,450,000 – 1,499,999
<option>1,500,000 – 1,749,999
<option>1,750,000 – 1,999,999
<option>2,000,000 o más
</select>

Me imagino que cuando los pase a PHP, por ejemplo, si elijo no sé, la opción de 1,000,000 - 1,099,999. Entonces declario dos variables. Por ejemplo.

Extraigo el resultado en $valor.
if ($valor = "1,000,000 - 1,099,999") {
$inferior = 1000000;
$superior = 1099999
}

Y hago la siguiente declaración: WHERE columna BETWEEN $superior AND $inferior

Y tengo otra duda, con MySQL se le puede agregar en este caso la cláusula "OR" porque son varios los rangos a buscar al mismo tiempo.
  #6 (permalink)  
Antiguo 22/08/2012, 12:24
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Buscar con PHP y MySQL con rangos

Si, puedes usar or, and y demás conectores lógicos, así como también puedes consultar la documentación de mysql.

para no tener un id o case para cada caso de rango, te sugiero esto:

$valor='1,000,000 – 1,099,999';

$rango=explode(' - ',str_replace(',','',$valor));//quito comas y divido por el ' - '

y puedes usarlo así:
WHERE columna BETWEEN $rango[0] AND $rango[1]
  #7 (permalink)  
Antiguo 22/08/2012, 12:26
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 11 meses
Puntos: 15
Respuesta: Buscar con PHP y MySQL con rangos

Muchísimas gracias

Etiquetas: formulario, mysql, rangos, usuarios
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:32.