
07/04/2004, 09:06
|
| | Fecha de Ingreso: octubre-2003
Mensajes: 280
Antigüedad: 21 años, 6 meses Puntos: 1 | |
Problem en buscador Hola a todos. He realizado un buscador sobre una base de datos access 2000 y no me funciona. La tabla se llama listado, y esta dentro del archivo hostales.mdb.
bien, se llama a resultados.asp desde buscador.asp. Os mando el codigo del primero a ver si encontrais el fallo. En caso de que aqui no esté me lo indicais. Loq ue intento hacer es buscar por 3 campos(hostal,ciudad, poblacion), pudiendo ordenarlos por otros distintos, y mostrando la salida por 5,10 y 15 terminos encontrados.
resultados.asp
-------------------------------
<%
Dim mostrar 'cantidad de registros a mostrar por página
Dim cant_paginas 'cantidad de páginas que recibimos
Dim pagina_actual 'La página que mostramos
Dim registro_mostrado 'Contador utilizado para mostrar las páginas
Dim I 'Variable Loop
hostal = request.querystring("hostal")
ciudad = request.querystring("ciudad")
poblacion = request.querystring("poblacion")
orden = request.querystring("orden")
alf = request.querystring("alf")
cantidad = request.querystring("cantidad")
if cantidad="5" then
mostrar = 5
elseif cantidad="10" then
mostrar = 10
elseif cantidad="15" then
mostrar = 15
end if
if orden = "" then
response.redirect "buscador.asp"
end if
' IF para saber que página mostrar
If Request.QueryString("page") = "" Then
pagina_actual = 1
Else
pagina_actual = CInt(Request.QueryString("page"))
End If
strsql = "SELECT * FROM listado where UCase(hostal) like '%" & UCase(Request("hostal")) & "%' AND UCase(ciudad) like '%" & UCase(Request("ciudad")) & "%' AND UCase(poblacion) like '%" & UCase(Request("poblacion")) & "%' order by "& orden & " "&alf
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("./hostales.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
'cuento las páginas que se formaron con la variable mostrar
cant_paginas = RS.PageCount
' Si el pedido de página cae afuera del rango,
' lo modifico para que caiga adentro
If pagina_actual > cant_paginas Then pagina_actual = cant_paginas
If pagina_actual < 1 Then pagina_actual = 1
%>
<body>
<%
' Si la cantidad de páginas da 0 es que no hay registros... por eso este IF
If cant_paginas = 0 Then%>
<p><font face="Arial">Se han encontrado <font color="#FF0000"> <b>0</b> resultados</font></font></p>
<ul>
<li><font face="Arial"><a href="buscador.asp">Buscar nuevamente</a></font></li>
<li><font face="Arial">
<a href="resultados.asp?orden=Ciudad&hostal=<%=hostal %>&cantidad=5">Acceder a todos los datos de la Base de Datos</a></font></li>
</ul>
<%
'sino, si es que encuentra registros
Else
' Nos movemos a la página elegida
RS.AbsolutePage = pagina_actual
' muestra el dato de la página en la que estamos...
%>
<div align="left">
<table border="1" cellspacing="1" bordercolor="#006600" width="97%" id="AutoNumber1">
<tr>
<td width="3%" bgcolor="#009933" align="center"> <p style="text-align: left"><b><font color="#ffffff" face="Arial" size="2">
Ref.</font></b></td>
<td width="10%" bgcolor="#009933" align="center"> <p style="text-align: left"><b><font color="#ffffff" face="Arial" size="2">
Hostal </font></b></td>
<td width="7%" bgcolor="#009933" align="center"> <p style="text-align: left"><b><font color="#ffffff" face="Arial" size="2">
Direccion </font></b></td>
<td width="6%" bgcolor="#009933" align="center"> <p style="text-align: left"><b><font color="#ffffff" face="Arial" size="2">
Ciudad</font></b></td>
<td width="9%" bgcolor="#009933" align="center"> <p style="text-align: left"><b><font color="#ffffff" face="Arial" size="2">
Poblacion </font></b></td>
<td width="14%" bgcolor="#009933" align="center"> <p style="text-align: left"><b><font color="#ffffff" face="Arial" size="2">
Caracteristicas </font></b></td>
<td width="6%" bgcolor="#009933" align="center"> <p style="text-align: left"><b><font color="#ffffff" face="Arial" size="2">
Comedor </font></b></td>
<td width="11%" bgcolor="#009933" align="center"> <p style="text-align: left"><b><font color="#ffffff" face="Arial" size="2">
Otros Servicios </font></b></td>
<td width="8%" bgcolor="#009933" align="center"> <p style="text-align: left"><b><font color="#ffffff" face="Arial" size="2">
Alta </font></b></td>
<td width="7%" bgcolor="#009933" align="center"> <p style="text-align: left"><b><font color="#ffffff" face="Arial" size="2">
Media</font></b></td>
<td width="7%" bgcolor="#009933" align="center"> <p style="text-align: left"><b><font color="#ffffff" face="Arial" size="2">
Baja </font></b></td>
<td width="12%" bgcolor="#009933" align="center"> <p style="text-align: left"><b><font color="#ffffff" face="Arial" size="2">
Precios </font></b></td>
</tr>
<%
' Hacemos el bucle mostrando los datos del registro
registro_mostrado = 0
Do While registro_mostrado < mostrar And Not RS.EOF
if colorfila = 0 then
color= "#FFFFFF"
colorfila=1
else
color="#00cc66"
colorfila=0
end if
%>
<tr>
<td width="3%" style="border-style:none; border-width:medium; background-color: <%= color %>; "><font face="Arial" size="2">
<div align="left"><b><%=RS("referencia")%></b> </div></td>
<td width="10%" style="border-style:none; border-width:medium; background-color: <%= color %>; text-align:left; "><div align="left"><font face="Arial" size="2"><%=RS("hostal")%></a></font>
</div></td>
<td width="7%" align="center" style="border-style:none; border-width:medium; background-color: <%= color %>; text-align:center; "><font face="Arial" size="2"><%=RS("direccion")%>
<div align="left"></div></td>
<td width="6%" align="center" style="border-style:none; border-width:medium; background-color: <%= color %>; text-align:center; "><font face="Arial" size="2"><%=RS("ciudad")%>
<div align="left"></div></td>
<td width="9%" style="border-style:none; border-width:medium; background-color: <%= color %>; "><font face="Arial" size="2">
<div align="left"><b><%=RS("poblacion")%></b> </div></td>
<td width="14%" style="border-style:none; border-width:medium; background-color: <%= color %>; text-align:left; "><div align="left"><font face="Arial" size="2"><%=RS("caracteristicas")%></a></font>
</div></td>
<td width="6%" align="center" style="border-style:none; border-width:medium; background-color: <%= color %>; text-align:center; "><font face="Arial" size="2"><%=RS("comedor")%>
<div align="left"></div></td>
<td width="11%" align="center" style="border-style:none; border-width:medium; background-color: <%= color %>; text-align:center; "><font face="Arial" size="2"><%=RS("servicios")%>
<div align="left"></div></td>
<td width="8%" style="border-style:none; border-width:medium; background-color: <%= color %>; "><font face="Arial" size="2">
<div align="left"><b><%=RS("talta")%></b> </div></td>
<td width="7%" style="border-style:none; border-width:medium; background-color: <%= color %>; text-align:left; "><div align="left"><font face="Arial" size="2"><%=RS("tmedia")%></a></font>
</div></td>
<td width="7%" align="center" style="border-style:none; border-width:medium; background-color: <%= color %>; text-align:center; "><font face="Arial" size="2"><%=RS("tbaja")%>
<div align="left"></div></td>
<td width="12%" align="center" style="border-style:none; border-width:medium; background-color: <%= color %>; text-align:center; ">
<p align="left"><font face="Arial" size="2" color="#FF0000">€<%=RS("precio")%>
</td>
</tr>
<%
' Sumamos 1 a los mostrados
registro_mostrado = registro_mostrado + 1
' Nos movemos al próximo registro...
RS.MoveNext
Loop
End If
%>
</table>
<%
' Cerramos y limpiamos...
RS.Close
Set RS = Nothing
oConn.Close
Set oConn = Nothing
%>
</div>
<div align="center"><br>
<font size="2" face="Arial">
<%
' Ahora mostramos los enlaces a las otras páginas con el resto de los registros...
If pagina_actual > 1 Then
%> </font><font size="2"> <a href="resultados.asp?eje=15&page=<%= pagina_actual - 1 %>&hostal=<%=hostal%>&ciudad=<%=ciudad%>&orden=<%= orden%>&poblacion=<%=poblacion%>&cantidad=<%=canti dad%>">
<font face="Arial">[</font><b><font face="Arial"><<</font></b><font face="Arial"> anterior ]</font></a><font face="Arial"> <%
End If
' mostramos la paginacion por numeros de página
For I = 1 To cant_paginas
If I = pagina_actual Then
%> <font color="#FF3300">
<b><%= I %></b></font>
<%
Else
%>
<a href="resultados.asp?eje=15&page=<%= I %>&hostal=<%=hostal%>&ciudad=<%=ciudad%>&orden=<%= orden%>&poblacion=<%=poblacion%>&cantidad=<%=canti dad%>"><%= I %></a>
<%
End If
Next 'I
If pagina_actual < cant_paginas Then
%> </font> <a href="resultados.asp?eje=15&page=<%= pagina_actual + 1 %>&hostal=<%=hostal%>&ciudad=<%=ciudad%>&orden=<%= orden%>&poblacion=<%=poblacion%>&cantidad=<%=canti dad%>">
<font face="Arial">[ </font>
<font size="2" face="Arial"> siguiente
</font>
<font size="2">
<b><font face="Arial">>></font></b></font><font face="Arial" size="2">]</font></a><font size="2">
<br>
</font>
<%
End If
'Fin
%>
</div>
<br><center><font face="Arial" size="1"><a href="buscador.asp">Buscar de nuevo</font><font size="2"><a/>
</a></font>
</BODY>
</HTML>
Podeis ver en que falla en la direccion www20.brinkster.com/aruizroldan/buscador.asp
NOTA: HE PUESTO TODO EL CODIGO PORQUE PUEDE QUE LO QUE FALLE SEA UNA TONTERIA, PERO NO LA ENCUENTRO.
Gracias. |