Foros del Web » Programando para Internet » ASP Clásico »

Buscar palabras por separado.

Estas en el tema de Buscar palabras por separado. en el foro de ASP Clásico en Foros del Web. Saludos, alguien sabe como puedo hacer para que cuando alguien busque una frase en una base de datos no busque exactamente la frase si no ...
  #1 (permalink)  
Antiguo 29/11/2002, 16:07
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 4 meses
Puntos: 4
Exclamación Buscar palabras por separado.

Saludos,

alguien sabe como puedo hacer para que cuando alguien busque una frase en una base de datos no busque exactamente la frase si no que busque cada palabra por separado.

ejemplo

un pajaro azul:
actualmente busca -> "un pajaro azul"

la forma que deseo es:
un pajaro azul:
deberia ser -> "un" "pajaro" "azul"


el sql que uso actualmente es asi:

sql="SELECT * FROM almacenes WHERE palabras_claves LIKE '%" & buscar & "%' ORDER BY establecimiento ASC"


muchas gracias por la colaboracion..
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #2 (permalink)  
Antiguo 29/11/2002, 16:09
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 4 meses
Puntos: 1
http://forosdelweb.com/showthread.ph...ador+ecommerce

Saludos
  #3 (permalink)  
Antiguo 30/11/2002, 11:35
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 4 meses
Puntos: 4
no me funciona

saludos,

e implementado lo que me diste urjose, pero no me funciona, lo tengo asi..


basedatos = "mp.mdb"
Set con = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
con ="DRIVER={Microsoft Access Driver (*.mdb)};uid=;pwd=;"
con = con & "DBQ=" & server.mappath(basedatos)


nompagina = Request.ServerVariables("SCRIPT_NAME")

If request.form("buscar") <> "" Then
buscar =Split(Replace(Request.Form("buscar"),"'","''"))
End IF
If request.querystring("buscar") <> "" Then
buscar =Split(Replace(Request.querystring("buscar"),"'"," ''"))
End If


SQL="SELECT * FROM musica WHERE INSTR(claves,'"&buscar(0)&"')"
For i=1 to Ubound(buscar)
SQL=SQL&" OR INSTR(claves,'"&buscar(I)&"')"
Next
SET RS=con.Execute(SQL)
rs.PageSize = RegPorPagina
rs.Open sql, con, 3, 3


como podria arreglarlo?

gracias,
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #4 (permalink)  
Antiguo 30/11/2002, 11:44
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 4 meses
Puntos: 1
Y en que no funciona?

Saludos
  #5 (permalink)  
Antiguo 01/12/2002, 09:49
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 4 meses
Puntos: 4
Saludos,

me aparece un error queme dice que ,

se requiere un objeto con.

pero como veras ya he definido el objeto con, anteriormente,
en esta linea

basedatos = "mp.mdb"
Set con = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
con ="DRIVER={Microsoft Access Driver (*.mdb)};uid=;pwd=;"
con = con & "DBQ=" & server.mappath(basedatos)


si le quito al codigo tuyo la parte que diice
SET RS=con.Execute(SQL)


me sale este error:
objeto Response, ASP 0106 (0x80020005)
Se encontró un tipo de datos sin especificar.


espero me puedas ayudar, ya que no entiendo que pasa.

gracias
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #6 (permalink)  
Antiguo 01/12/2002, 18:15
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 4 meses
Puntos: 1
Lo defines pero nunca lo abres

te falta un con.open

y esto esta mal

con ="DRIVER={Microsoft Access Driver (*.mdb)};uid=;pwd=;"
con = con & "DBQ=" & server.mappath(basedatos)

Date una vuelta por www.asptutor.com para que veas comose conecta

Saludos

Última edición por urjose; 01/12/2002 a las 18:30
  #7 (permalink)  
Antiguo 01/12/2002, 21:28
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 4 meses
Puntos: 4
Hola, no esta mal, ya que es la misma conexion que siempre utilizo siempre me ha funcionado perfectamente,

lo que pasa es que no se como aplicarla con tu codigo, tambien siempre coloco un open..

voy a colocar el codigo que uso siempre, para ver si me puedes dar una mano y ver como seria con el que tu propones..


muchas gracias, espero me puedas colaborar.


<%

Dim basedatos
basedatos = "../cgi-bin/ras/mp2.mdb"
Set con = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
con ="DRIVER={Microsoft Access Driver (*.mdb)};uid=;pwd=;"
con = con & "DBQ=" & server.mappath(basedatos)


Dim sql, buscar

If request.form("buscar") <> "" Then
buscar = request.form("buscar")
End IF
If request.querystring("buscar") <> "" Then
buscar = request.querystring("buscar")
End If



sql="SELECT * FROM musica WHERE claves LIKE '%" & buscar & "%' ORDER BY titulo ASC"
rs.PageSize = RegPorPagina
rs.Open sql, con, 3, 3


%>

espero me puedas colaborar
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #8 (permalink)  
Antiguo 01/12/2002, 21:41
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 4 meses
Puntos: 1
Insisto, la forma en que usas el con, esta mal

Nunca abres la conexión a la BD


Cita:
Ejemplo1- conexión a una base de datos ACCESS sin declarar DSN

strconn = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("\dirBD\asptutor.mdb")
set conn = Server.Createobject("adodb.connection")
conn.open strconn


Ejemplo1 bis- conexión a una base de datos ACCESS sin declarar DSN usado Jet

strconn = ""Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/dirDb/asptutor.mdb")
set conn = Server.Createobject("adodb.connection")
conn.open strconn


Asptutor.com.

Saludos
  #9 (permalink)  
Antiguo 01/12/2002, 22:02
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 4 meses
Puntos: 4
Saludos,


la conexion la estoy abriendo justo despues del sql, siempre la he utilizado asi y me funciona, es mas asi como la tengo y como muiestro en el mensaje anterior me funiciona perfectamente, me busca lo que quiero, pero no me separa las frases, alli es donde te pido ayuda, ya que no he podido acoplar el codigo que tu sugieres al mio..

te ruego el favor me ayudes, a repararlo. para qeu me quede buscando las palabras separadas.


gracias
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #10 (permalink)  
Antiguo 01/12/2002, 22:20
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 4 meses
Puntos: 1
Vuelvo a insistir en que estas mal.

Lo que estas abriendo despues de la sql es el Recordset no el objeto de conexión es por ello que te manda error de que el objeto no existe, en mi codigo lo unico que tienes que cambiar es el nombre de la tabla y el nombre del campo que esta dentro de la función Instr
  #11 (permalink)  
Antiguo 02/12/2002, 08:03
 
Fecha de Ingreso: diciembre-2001
Ubicación: Mercedes
Mensajes: 92
Antigüedad: 22 años, 4 meses
Puntos: 0
Lexus, me parece que esta mal tu codigo, fijate que primero creas un objeto llamado con y despues lo tratas como una variable con= "dbq=..."
  #12 (permalink)  
Antiguo 02/12/2002, 09:01
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 4 meses
Puntos: 4
Saludos a todos,


al parecer si esta mal el codigo, pero lo mas curioso es que asi lo vengo escribiendo desde hace mas de un año y siempre me ha funcionado perfectamente, nunca me salen mensajes de error y me corre perfectamente,

a que se puede deber esto..
si esta mal escrito no deberia funcionar.. o acaso no es necesario esa linea de codigo?


muchas gracias por las respuesta.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
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 20:06.