Buscar en Asptutor     
Demo Tienda Virtual Tutorcar
 Navegacion->Inicio | Active Server Pages  

La web de los recursos y ejemplos de asp

Versión para imprimir

 

Alojado en:


urbe-networks.com

Recomienda esta pagina a un amigo

Servicios Gratuitos

Articulos relacionados

Utilizar GetRows()

Tienda Virtual - Carrito de compra

Messenger a través de BD en ASP

Miniaplicacion de comercio electronico

Objeto Datagrid de ASP.NET en ASP

Acotación de resultados

Distintos formatos de Fecha

Un Sistema de postales Virtuales en ASP (II)

Ejemplo de Calculo de numeros primos

Como vaciar un array

Como poner las fechas en castellano

Como Imprimir desde un enlace

Distintos formatos de Fecha

Un sistema de recomendación

Salidas en formato compatible Excel

Tutorial de ASPEmail


Enlaces recomendados

   

Tutorial ASP

Acotación de resultados
Este articulo ha sido leído 35.389 veces


Acotación de resultados

 Colaboración enviada por CESAR BELTRAN

 

Hola, este es un ejemplo basado en una inmobiliaria pero se puede aplicar a cualquier otra cosa variando los datos correspondientes.

En este caso lo que se está haciendo es una acotación de búsqueda dependiendo de los datos y la cantidad de ellos que envíe el usuario, me explico, imaginemos una búsqueda de inmuebles que se pueda acotar por Tipo (piso, chalet, etc.), precio (en este ejemplo en Euros) y por Zona (por ejemplo Código postal).

El problema viene dado por que puede que en la acotación se indique:

- Ningún dato
- Alguno de los 3 exclusivamente
- Solo dos de ellos
- Los 3 a la vez.

Esto da como resultado 8 posibilidades que tienen los usuarios para acotar la búsqueda.

Para mejorar un poco los resultados se aplica un margen de 12.000€ a la acotación por importe.
 


<% Dim opcion
opcion = 0
' recojemos los valores del formulario de acotacion
If (Request.Form("tipo") <> "") Then opcion = opcion + 1
If (Request.Form("precio") <> "") Then opcion = opcion + 10
If (Request.Form("zona") <> "") Then opcion = opcion + 100
' con esto averiguamos cual de las 8 posibiliadades ha seleccionado el usuario de forma que:
'ningun dato = 0
'solo tipo = 1
'solo precio = 10
'solo zona = 100
'tipo + precio = 11
'tipo + zona = 101
'precio + zona = 110
'todos = 111

Dim tipo
tipo = ""
Dim zona
zona = ""
Dim precio
precio = 0
If (Request.Form("tipo") <> "") Then inmo = Request.Form("tipo")
If (Request.Form("zona") <> "") Then zona = Request.Form("zona")
If (Request.Form("precio") <> "") Then precio = Request.Form("precio")

Dim Recordset1
Dim Recordset1_numRows
Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MICONEXION

select case opcion
case 0 'ningun dato
Recordset1.Source = "SELECT * FROM pisos ORDER BY PRECIO_EUROS DESC"
case 1 ' solo tipo
Recordset1.Source = "SELECT * FROM pisos WHERE TIPO_INMO = '" + Replace(tipo, "'", "''") + "' ORDER BY PRECIO_EUROS DESC"
case 10 ' solo precio
v_importe_desde = precio-12001
v_importe_hasta = precio+12001
Recordset1.Source = "SELECT * FROM pisos WHERE PRECIO_EUROS >= " & v_importe_desde & " AND PRECIO_EUROS <= " & v_importe_hasta & " ORDER BY PRECIO_EUROS DESC"
case 100 ' solo zona
Recordset1.Source = "SELECT * FROM pisos WHERE ZONA_WEB = '" + Replace(zona, "'", "''") + "' ORDER BY PRECIO_EUROS DESC"
case 11 ' tipo + precio
v_importe_desde = precio-12001
v_importe_hasta = precio+12001
Recordset1.Source = "SELECT * FROM pisos"
Recordset1.Source = Recordset1.Source + " WHERE TIPO_INMO = '" & tipo & "'"
Recordset1.Source = Recordset1.Source + " AND PRECIO_EUROS >= " & v_importe_desde & " AND PRECIO_EUROS <= " & v_importe_hasta
Recordset1.Source = Recordset1.Source + " ORDER BY PRECIO_EUROS DESC"
case 101 ' tipo + zona
Recordset1.Source = "SELECT * FROM pisos"
Recordset1.Source = Recordset1.Source + " WHERE TIPO_INMO = '" & tipo & "'"
Recordset1.Source = Recordset1.Source + " AND ZONA_WEB = '" & zona & "'"
Recordset1.Source = Recordset1.Source + " ORDER BY PRECIO_EUROS DESC"
case 110 ' precio + zona
v_importe_desde = precio-12001
v_importe_hasta = precio+12001
Recordset1.Source = "SELECT * FROM pisos"
Recordset1.Source = Recordset1.Source + " WHERE ZONA_WEB = '" & zona & "'"
Recordset1.Source = Recordset1.Source + " AND PRECIO_EUROS >= " & v_importe_desde & " AND PRECIO_EUROS <= " & v_importe_hasta
Recordset1.Source = Recordset1.Source + " ORDER BY PRECIO_EUROS DESC"
case 111 ' los tres datos
v_importe_desde = precio-12001
v_importe_hasta = precio+12001
Recordset1.Source = "SELECT * FROM pisos"
Recordset1.Source = Recordset1.Source + " WHERE ZONA_WEB = '" & zona & "'"
Recordset1.Source = Recordset1.Source + " AND TIPO_INMO = '" & tipo & "'"
Recordset1.Source = Recordset1.Source + " AND PRECIO_EUROS >= " & v_importe_desde & " AND PRECIO_EUROS <= " & v_importe_hasta
Recordset1.Source = Recordset1.Source + " ORDER BY PRECIO_EUROS DESC"
end select

Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()
Recordset1_numRows = 0

%>

 

 

 

 

¿Estas empezando y este articulo es muy complejo para tí?
Empieza por el principio, visita Ejemplos Básicos

Puedes obtener un listado completo de todos los artículos y ejemplos de ASP en http://www.asptutor.com/asp/todoslosarticulos.asp
 

Valora este articulo   Malo Excelente  
25 usuarios han valorado este articulo. Valoracion media:

Nota: Para cualquier consulta u opinión sobre este articulo puedes usar los foros

 

 

AspTutor lo hacemos entre todos ¿Como vas a colaborar hoy?


Google

 

Descargas de manuales¦ Ejemplos de código ¦ Artículos mas visitados ¦ Envía tu articulo ¦ Foros ¦
  Libro de visitas ¦Crea un enlace con ASPTutor 
 

    © 2001-Hasta hoy  Pedro Rufo Martín  contactar