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

problemas al mostrar desde un buscador

Estas en el tema de problemas al mostrar desde un buscador en el foro de ASP Clásico en Foros del Web. wenas > a todos, tengo un pequeño buscador de palabras clave en mi web, el problema es el siguiente: tengo una BD que contiene 3 ...
  #1 (permalink)  
Antiguo 12/08/2004, 22:02
Avatar de ken-obi  
Fecha de Ingreso: julio-2004
Ubicación: Alicante
Mensajes: 314
Antigüedad: 20 años, 9 meses
Puntos: 6
problemas al mostrar desde un buscador

wenas > a todos,

tengo un pequeño buscador de palabras clave en mi web,
el problema es el siguiente:

tengo una BD que contiene 3 tablas (noticias, actividades, articulos)
tengo un formulario que te da la opcion a buscar por noticias o actividades o articulos y bien, me los muestra correcto... PERO cuando muestro todos de golpe con UNION SELECT * me muestra LO QUE LE DA LA GANA y no se como arreglarlo.
Porcierto todos los campos de las tablas son identicas no el contenido pero si el nombre de los campos.

aqui os pego el codigo:

formulario.asp
<form method="GET" action="resultados.asp">
<input name="texto" type="text">
<select name="cate" id="cate">
<option value="1" selected>Cualquiera</option>
<option value="2">Noticias</option>
<option value="3">Actividades</option>
<option value="4">Articulos</option>
</select>

resultado.asp
Dim subi

cate = request.querystring("cate")

if cate="1" then
subi= "SELECT * FROM noticias UNION SELECT * FROM articulos UNION SELECT * FROM actividades"
elseif cate="2" then
subi="SELECT * FROM not"
elseif cate="3" then
subi="SELECT * FROM actividades"
elseif cate="4" then
subi="SELECT * FROM articulos"
end if
strsql = subi& "where UCase(tit) like '%" & UCase(Request("tit")) & "%' AND UCase(artic) like '%" & UCase(Request("artic")) & "%' AND UCase(tex) like '%" & UCase(Request("tex")) & "%' order by "& orden & " "&alf

Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("noticias.mdb")

' creo el RecordSet y defino la cantidad de registros a mostrar
Set RS = Server.CreateObject("ADODB.Recordset")
RS.PageSize = mostrar
RS.CacheSize = mostrar

' Abro la tabla...
RS.Open strSQL, oConn,3,1

GRACIAS DE ANTEMANO
  #2 (permalink)  
Antiguo 12/08/2004, 22:15
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 23 años
Puntos: 7
Deberia ser
if cate="2" or cate="1" then
subin="SELECT * FROM not"
elseif cate="3" or cate="1" then
subia="SELECT * FROM actividades"
elseif cate="4" or cate="1" then
subix="SELECT * FROM articulos"
end if
if len(subin)>0 then strsqln = subin& "where UCase(tit) like '%" & UCase(Request("tit")) & "%' AND UCase(artic) like '%" & UCase(Request("artic")) & "%' AND UCase(tex) like '%" & UCase(Request("tex")) & "%'"
if len(subia)>0 then strsqla = subia& "where UCase(tit) like '%" & UCase(Request("tit")) & "%' AND UCase(artic) like '%" & UCase(Request("artic")) & "%' AND UCase(tex) like '%" & UCase(Request("tex")) & "%'"
if len(subix)>0 then strsqlx = subia& "where UCase(tit) like '%" & UCase(Request("tit")) & "%' AND UCase(artic) like '%" & UCase(Request("artic")) & "%' AND UCase(tex) like '%" & UCase(Request("tex")) & "%'"
if cate="1" then
strsql=strsqln & " UNION " & strsqla & " UNION " & strsqlx
elseif cate="2" then
strsql=strsqln
elseif cate="3" then
strsql=strsqla
else
strsql=strsqlx
end if
  #3 (permalink)  
Antiguo 13/08/2004, 07:54
Avatar de ken-obi  
Fecha de Ingreso: julio-2004
Ubicación: Alicante
Mensajes: 314
Antigüedad: 20 años, 9 meses
Puntos: 6
Re: Problemas al mostrar desde un buscador

me sale un error:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis en la consulta. cláusula de consulta incompleta.

/pages/buscador/resultados.asp, línea 63

en la linea 63 hay esto:

RS.Open strSQL, oConn,3,1

gracias de antemano.

Última edición por ken-obi; 13/08/2004 a las 07:56
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 11:36.