Ver Mensaje Individual
  #5 (permalink)  
Antiguo 20/12/2011, 00:18
dicuenca77
 
Fecha de Ingreso: agosto-2011
Mensajes: 68
Antigüedad: 12 años, 8 meses
Puntos: 11
Respuesta: Mostrar relacion de registros

Pruebate este código que te pongo:

Código:
<%

session("vartemactiveuser")="ciencia"
response.write construyesql&"<BR>"
session("vartemactiveuser")="ciencias aplicadas"
response.write construyesql&"<BR>"
session("vartemactiveuser")="mecanica aplicada a la robotica"
response.write construyesql&"<BR>"


Function construyesql
Dim aux, i, strconn, cadena

cadena=session("vartemactiveuser")
'Si quieres omitir palabas poco significativas como 'a' 'la', etc usa
'replace(cadena,"a","")
'replace(cadena,"la","")

strconn="SELECT tema FROM registrousuarios WHERE "
aux=""

For i=1 to len(cadena)
if mid(cadena,i,1)<>" " then
 aux=aux&mid(cadena,i,1)
Else
 if aux<>"" then
  strconn=strconn&"(tema LIKE '%"&aux&"%') OR "
  aux=""
 End if
End if
Next
strconn=strconn&"(tema LIKE '%"&aux&"%')"

construyesql=strconn

End Function


%>
Te lo he hecho un poco a lo bruto, pero funciona.
La idea es separar cada una de las palabras de un tema e ir construyendo la sentencia SQL con un LIKE de cada una de las palabras.
Él código que te he puesto:

session("vartemactiveuser")="ciencia"
response.write construyesql&"<BR>"
session("vartemactiveuser")="ciencias aplicadas"
response.write construyesql&"<BR>"
session("vartemactiveuser")="mecanica aplicada a la robotica"
response.write construyesql&"<BR>"

Produce el siguiente resultado:

SELECT tema FROM registrousuarios WHERE (tema LIKE '%ciencia%')
SELECT tema FROM registrousuarios WHERE (tema LIKE '%ciencias%') OR (tema LIKE '%aplicadas%')
SELECT tema FROM registrousuarios WHERE (tema LIKE '%mecanica%') OR (tema LIKE '%aplicada%') OR (tema LIKE '%a%') OR (tema LIKE '%la%') OR (tema LIKE '%robotica%')

Con lo que sólo tienes que cargar el resultado de la función en una variable y hacerle un execute.

No sé si te servirá de algo o la he liado más....