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

Ayuda con la página de resultados de un buscador

Estas en el tema de Ayuda con la página de resultados de un buscador en el foro de ASP Clásico en Foros del Web. Hola, soy bastante novato en esto, haber si me podeis ayudar un poco. Se trata de que el buscador que os muestro ahora mismo el ...
  #1 (permalink)  
Antiguo 18/01/2007, 10:54
 
Fecha de Ingreso: diciembre-2002
Mensajes: 17
Antigüedad: 21 años, 5 meses
Puntos: 0
Ayuda con la página de resultados de un buscador

Hola, soy bastante novato en esto, haber si me podeis ayudar un poco.
Se trata de que el buscador que os muestro ahora mismo el código, de la web de una inmobiliaria genera una página de resultados, donde aparecen una imagen con su enlace a una ficha. La idea es que de vez de que aparezca solo la imagen aparezcan más datos en forma de tabla, es decir:
imagen, referencia, precio, habitaciones.
Pero la verdad es que no se donde del codigo del documento resultados lo tengo que poner. Como podeis observar estoy bastante perdido.

CÓDIGO DEL BUSCADOR:


Cita:
<!--#include file="includes/globales.asp"-->



<%
' DATOS DE CONEXION ...
dim ruta
ruta = session("ruta")
Dim cnn
Dim str
Dim rs
Dim SQL

cadena = "Driver={Microsoft Access Driver (*.mdb)};Dbq="&ruta&";Uid=Admin;Pwd=;"
Set cnn = Server.CreateObject("ADODB.Connection")
cnn.Open cadena
Set rs = CreateObject("ADODB.Recordset")
rs.ActiveConnection = cnn

%>

<table class="Menu_Cabecera" align="center" width="95%">
<tr><td align="center"><b><i><font face="Verdana" size="2">Buscar una Vivienda</font></i></b></td></tr>
</table>
<table><tr><td></td></tr></table>



<table align="center" width="60%" class="Tabla_Menu">
<tr><td>
<table align="center" width="100%">
<form action="resultados.asp" method="post" target="_blank" id=form1 name=form1>

<tr>
<td class="textito">Modo:</td>

<td><SELECT id=modo name=modo>

<OPTION>Venta</OPTION>
<OPTION>Alquiler</OPTION>
<OPTION>Traspaso</OPTION>
</SELECT>

</td></tr>

<tr>
<td class="textito">Tipo:</td>
<% 'rellenamos los combos ...
sql = "select * from menu_combos where nombre_combo='Combo_Tipo'"
rs.Open sql, cnn, 1, 3
%><td><SELECT id=tipo name=tipo>
<OPTION selected>Todos</OPTION><%
if rs.EOF = false then
while rs.EOF = false
%>
<OPTION><%=rs("texto_combo")%></OPTION>


<% rs.MoveNext
wend
%>
<% end if %>

</SELECT>

</td></tr>
<% if rs.State <> adstateclosed then
rs.Close
end if %>

<tr>
<td class="textito">Situacion:</td>
<% 'rellenamos los combos ...
sql = "select * from menu_combos where nombre_combo='Combo_Situacion' order by texto_combo asc"
rs.Open sql, cnn, 1, 3
%><td><SELECT id=situacion name=situacion>
<OPTION selected>Todas</OPTION>
<%if rs.EOF = false then
while rs.EOF = false
%>
<OPTION><%=rs("texto_combo")%></OPTION>


<% rs.MoveNext
wend
%>
<% end if %>
</SELECT>
</td></tr>
<% if rs.State <> adstateclosed then
rs.Close
end if %>

<td class="textito">Poblacion:</td><td><input class="tabla_menu" type="text" name="Poblacion"></td></tr>
<td class="textito">Minimo Habitaciones:</td><td><input class="tabla_menu" type="text" name="Habitaciones"></td></tr>
<td class="textito">Minimo Baños:</td><td><input class="tabla_menu" type="text" name="Baños"></td></tr>
<td class="textito">Minimo Aseos:</td><td><input class="tabla_menu" type="text" name="Aseos"></td></tr>
<td class="textito">Precio Maximo:</td><td><input class="tabla_menu" type="text" name="Precio"></td></tr>
<td class="textito">Buscar:</td><td><input class="tabla_menu" type="submit" name="Buscar Ahora"></td>
</tr>
</form>
CÓDIGO DE RESULTADOS

Cita:
<!--#include file="includes/globales.asp"-->
<%Server.Execute "cabecera.asp"%>

<td valign=top>&nbsp;</td>
<td width=100% colspan=2 valign=top align=center>

<%
' DATOS DE CONEXION ...
dim ruta
ruta = session("ruta")
Dim cnn
Dim str
Dim rs
Dim rs1
Dim SQL

cadena = "Driver={Microsoft Access Driver (*.mdb)};Dbq="&ruta&";Uid=Admin;Pwd=;"
Set cnn = Server.CreateObject("ADODB.Connection")
cnn.Open cadena
Set rs = CreateObject("ADODB.Recordset")
rs.ActiveConnection = cnn
Set rs1 = CreateObject("ADODB.Recordset")
rs1.ActiveConnection = cnn



Dim PaginaActual ' en qué pagina estamos
Dim PaginasTotales ' cuántas páginas tenemos
Dim TamPagina ' cuantos registros por pagina
Dim CuantosRegistros ' para imprimir solo el nº de registro por pagina que queramos


dim contador
dim tipo, situacion, poblacion
dim habitaciones, ba, aseos
dim precio

if Request.Form("modo") <> "" then
modo = Request.Form("modo")
else
modo = Request.QueryString("modo")
end if

if Request.Form("precio") <> "" then
precio = meter_numero(Request.Form("precio"))
else
precio = meter_numero(Request.QueryString("precio"))
end if

if Request.Form("tipo") <> "" then
tipo = Request.Form("tipo")
else
tipo = Request.QueryString("tipo")
end if

if Request.Form("situacion") <> "" then
situacion = Request.Form("situacion")
else
situacion = Request.querystring("situacion")
end if

if Request.Form("poblacion") <> "" then
poblacion = Request.Form("poblacion")
else
poblacion = Request.querystring("poblacion")
end if

if Request.Form("habitaciones") <> "" then
habitaciones = Request.Form("habitaciones")
else
habitaciones = Request.QueryString("habitaciones")
end if

if Request.Form("baños") <> "" then
ba = Request.Form("baños")
else
ba = Request.QueryString("ba")
end if
if Request.Form("aseos") <> "" then
aseos = Request.Form("aseos")
else
aseos = Request.QueryString("aseos")
end if


sql = "select * from casas where vendida=0"

if modo <> "" then
sql = sql & " and modo='" & modo & "'"
end if

if tipo <> "Todos" then
sql = sql & " and tipo='" & tipo & "'"
end if
if situacion <> "Todas" then
sql = sql & " and situacion='" & situacion & "'"
end if
if poblacion <> "" then
sql = sql & " and poblacion_casa like '%" & poblacion & "%'"
end if
if habitaciones <> "" then
sql = sql & " and habitaciones>=" & habitaciones & ""
end if
if ba <> "" then
sql = sql & " and baños>=" & ba & ""
end if
if aseos <> "" then
sql = sql & " and aseos>=" & aseos & ""
end if



if modo <> "Alquiler" then
if precio <> 0 then

sql = sql & " and total<=" & precio & ""
end if
end if


'MODIFICAR AQUI PARA CAMBIAR EL Nº DE REGISTRO POR PAGINA
TamPagina=12

'Leemos qué página mostrar. La primera vez será la inicial
if Request.Querystring("pagina")="" then
PaginaActual=1
else
PaginaActual=CInt(Request.Querystring("pagina"))
end if



' Defino el tamaño de las páginas
rs.PageSize=TamPagina
rs.CacheSize=TamPagina

' Abro el recordset
rs.Open SQL, cnn, 1, 2

'Cuento las páginas
PaginasTotales=rs.PageCount

'Compruebo que la pagina actual está en el rango
if PaginaActual < 1 then
PaginaActual = 1
end if
if PaginaActual > PaginasTotales then
PaginaActual = PaginasTotales
end if

'Por si la consulta no devuelve registros!
if PaginasTotales=0 then
PaginasTotales=0
%>

<table class="Tabla_Menu" align="center" width="95%">
<tr><td align="center"><b><i><font face="Verdana" size="2">Viviendas Encontradas</font></i></b></td></tr>
</table>
<table><tr><td></td></tr></table>

<table class="textito" align="center" width="95%">
<tr><td align="center"><b><i><font face="Verdana" size="2">No se ha encontrado ninguna vivienda con estos criterios</font></i></b></td></tr>
</table>
<table><tr><td></td></tr></table>

<%
else

'Vamos a paginar
rs.AbsolutePage=PaginaActual
%>
<table class="Tabla_Menu" align="center" width="95%">
<tr><td align="center"><b><i><font face="Verdana" size="2">Viviendas Encontradas</font></i></b></td></tr>
</table>
<table><tr><td></td></tr></table>
<%

CuantosRegistros=0
%><table width="95%" align="center" cellspacing="5" cellpadding="2">
<tr><%
do while not rs.EOF and CuantosRegistros < TamPagina
'Pinto una línea de la tabla por cada registro

%>
<td>
<table class="textito" background="<%=session("ruta_estilo")%>/fondo.jpg" align="center" width="125" height="140">
<tr><td align="center">
<a href="ficha.asp?id=<%=rs("id")%>"><%=rs("tipo")%></a><br>
<% if rs("foto1") = "" or isnull(rs("foto1")) = true then %>
<a href="ficha.asp?id=<%=rs("id")%>"><img border="0" src="img/no.jpg" width="115" height="95"></a>
<% else %>
<a href="ficha.asp?id=<%=rs("id")%>"><img border="0" src="img/<%=rs("foto1")%>" width="115" height="95"></a>
<% end if %>
</td></tr></table></td>
<%
CuantosRegistros=CuantosRegistros+1

contador = contador + 1
rs.MoveNext
if contador = 4 then
%><tr></tr><%
contador = 0
end if

loop


end if
rs.Close
cnn.Close
set rs=nothing
set cnn=nothing
%>

<%
'Muestro los enlaces
%>
<table align="center">
<tr>
<%
if PaginaActual > 1 then
%>
<td class=Tabla_Menu>
<%Response.Write("&nbsp;<A HREF=resultados.asp?tipo=" & tipo & "&situacion=" & situacion & "&modo=" & modo & "&poblacion=" & poblacion & "&habitaciones=" & habitaciones & "&ba=" & ba & "&aseos=" & aseos & "&precio=" & precio & "&pagina="& PaginaActual-1 & ">12 Anteriores</A>&nbsp;")%>
</td>&nbsp;
<%end if
if PaginaActual < PaginasTotales then
%>
<td class=Tabla_Menu>
<%Response.Write("&nbsp;<A HREF=resultados.asp?tipo=" & tipo & "&situacion=" & situacion & "&modo=" & modo & "&poblacion=" & poblacion & "&habitaciones=" & habitaciones & "&ba=" & ba & "&aseos=" & aseos & "&precio=" & precio & "&pagina=" & PaginaActual+1 &">12 Siguientes</A>&nbsp;")%>
</td>
<%end if%>
</tr></table>


</td>

</tr>
<tr>
<td>&nbsp;</td>
<td width=80%>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>


<%=server.execute("pie.asp")%>

Muchas gracias y saludos a todos.
  #2 (permalink)  
Antiguo 18/01/2007, 11:16
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 6 meses
Puntos: 144
Re: Ayuda con la página de resultados de un buscador

Cambia esta línea que tienes en el código de la página de resultados:
Código:
<a href="ficha.asp?id=<%=rs("id")%>"><img border="0" src="img/<%=rs("foto1")%>" width="115" height="95"></a>
Por todo esto:
Código:
<table border="0" cellpadding="0" cellspacing="0" align="center">
 <tr><td>
  <a href="ficha.asp?id=<%=rs("id")%>"><img border="0" src="img/<%=rs("foto1")%>" width="115" height="95"></a>
 </td></tr>
 <tr><td>
  Referencia: <%=rs("referencia)"%>
 </td></tr>
 <tr><td>
  Precio: <%=rs("precio)"%>
 </td></tr>
 <tr><td>
  N° de habitaciones: <%=rs("habitaciones)"%>
 </td></tr>
</table>
He supuesto que en la Base de Datos hay un campo llamado referencia, otro llamado precio, y otro llamado habitaciones.

Son 10.000
  #3 (permalink)  
Antiguo 19/01/2007, 11:53
 
Fecha de Ingreso: diciembre-2002
Mensajes: 17
Antigüedad: 21 años, 5 meses
Puntos: 0
Re: Ayuda con la página de resultados de un buscador

Muchas gracias 3 pies, funciona perfectamente.

Te agradadezco mucho tu ayuda.

Saludos
  #4 (permalink)  
Antiguo 19/01/2007, 12:04
 
Fecha de Ingreso: diciembre-2002
Mensajes: 17
Antigüedad: 21 años, 5 meses
Puntos: 0
Re: Ayuda con la página de resultados de un buscador

Otra cosita.
He modificado el documento de resultados.asp para que me muestre la información en forma de tabla de vez de casillitas como aparecía antes. De tal forma que aparezca como TÍTULO en cada celda de la tabla: Imagen, referencia, población, m2 ....
La cosa es que este título se me repite cada vez que aparece un inmueble.
¿hay alguna posibilidad de que sólo se vea una vez en cada hoja de resultados?


Este es el código que he modificado de resultados.asp:


Cita:
<!--#include file="includes/globales.asp"-->
<%Server.Execute "cabecera.asp"%>

<td valign=top>&nbsp;</td>
<td width=100% colspan=2 valign=top align=center>

<%
' DATOS DE CONEXION ...
dim ruta
ruta = session("ruta")
Dim cnn
Dim str
Dim rs
Dim rs1
Dim SQL

cadena = "Driver={Microsoft Access Driver (*.mdb)};Dbq="&ruta&";Uid=Admin;Pwd=;"
Set cnn = Server.CreateObject("ADODB.Connection")
cnn.Open cadena
Set rs = CreateObject("ADODB.Recordset")
rs.ActiveConnection = cnn
Set rs1 = CreateObject("ADODB.Recordset")
rs1.ActiveConnection = cnn



Dim PaginaActual ' en qué pagina estamos
Dim PaginasTotales ' cuántas páginas tenemos
Dim TamPagina ' cuantos registros por pagina
Dim CuantosRegistros ' para imprimir solo el nº de registro por pagina que queramos


dim contador
dim tipo, situacion, poblacion
dim habitaciones, ba, aseos
dim precio

if Request.Form("modo") <> "" then
modo = Request.Form("modo")
else
modo = Request.QueryString("modo")
end if

if Request.Form("precio") <> "" then
precio = meter_numero(Request.Form("precio"))
else
precio = meter_numero(Request.QueryString("precio"))
end if

if Request.Form("tipo") <> "" then
tipo = Request.Form("tipo")
else
tipo = Request.QueryString("tipo")
end if

if Request.Form("situacion") <> "" then
situacion = Request.Form("situacion")
else
situacion = Request.querystring("situacion")
end if

if Request.Form("poblacion") <> "" then
poblacion = Request.Form("poblacion")
else
poblacion = Request.querystring("poblacion")
end if

if Request.Form("habitaciones") <> "" then
habitaciones = Request.Form("habitaciones")
else
habitaciones = Request.QueryString("habitaciones")
end if

if Request.Form("baños") <> "" then
ba = Request.Form("baños")
else
ba = Request.QueryString("ba")
end if
if Request.Form("aseos") <> "" then
aseos = Request.Form("aseos")
else
aseos = Request.QueryString("aseos")
end if


sql = "select * from casas where vendida=0"

if modo <> "" then
sql = sql & " and modo='" & modo & "'"
end if

if tipo <> "Todos" then
sql = sql & " and tipo='" & tipo & "'"
end if
if situacion <> "Todas" then
sql = sql & " and situacion='" & situacion & "'"
end if
if poblacion <> "" then
sql = sql & " and poblacion_casa like '%" & poblacion & "%'"
end if
if habitaciones <> "" then
sql = sql & " and habitaciones>=" & habitaciones & ""
end if
if ba <> "" then
sql = sql & " and baños>=" & ba & ""
end if
if aseos <> "" then
sql = sql & " and aseos>=" & aseos & ""
end if



if modo <> "Alquiler" then
if precio <> 0 then

sql = sql & " and total<=" & precio & ""
end if
end if


'MODIFICAR AQUI PARA CAMBIAR EL Nº DE REGISTRO POR PAGINA
TamPagina=12

'Leemos qué página mostrar. La primera vez será la inicial
if Request.Querystring("pagina")="" then
PaginaActual=1
else
PaginaActual=CInt(Request.Querystring("pagina"))
end if



' Defino el tamaño de las páginas
rs.PageSize=TamPagina
rs.CacheSize=TamPagina

' Abro el recordset
rs.Open SQL, cnn, 1, 2

'Cuento las páginas
PaginasTotales=rs.PageCount

'Compruebo que la pagina actual está en el rango
if PaginaActual < 1 then
PaginaActual = 1
end if
if PaginaActual > PaginasTotales then
PaginaActual = PaginasTotales
end if

'Por si la consulta no devuelve registros!
if PaginasTotales=0 then
PaginasTotales=0
%>

<table class="Tabla_Menu" align="center" width="95%">
<tr><td align="center"><b><i><font face="Verdana" size="2">Viviendas Encontradas</font></i></b></td></tr>
</table>
<table><tr><td></td></tr></table>

<table class="textito" align="center" width="95%">
<tr><td align="center"><b><i><font face="Verdana" size="2">No se ha encontrado ninguna vivienda con estos criterios</font></i></b></td></tr>
</table>
<table><tr><td></td></tr></table>

<%
else

'Vamos a paginar
rs.AbsolutePage=PaginaActual
%>
<table class="Tabla_Menu" align="center" width="95%">
<tr><td align="center"><b><i><font face="Verdana" size="2">Viviendas Encontradas</font></i></b></td></tr>
</table>
<table><tr><td></td></tr></table>
<%

CuantosRegistros=0
%><table width="95%" align="center" cellspacing="5" cellpadding="2">
<tr><%
do while not rs.EOF and CuantosRegistros < TamPagina
'Pinto una línea de la tabla por cada registro

%>



<table width="95%" align="center">
<tr>
<td class="Tabla_Listado" align="center"><strong>Imagen</strong></td>
<td class="Tabla_Listado" align="center"><strong>Referencia:</strong></td>
<td class="Tabla_Listado" align="center"><strong>Población</strong></td>
<td class="Tabla_Listado" align="center"><strong>M<sup>2</sup></strong></td>
<td class="Tabla_Listado" align="center"><strong>Habitaciones</strong></td>
<td class="Tabla_Listado" align="center"><strong>Baños</strong></td>
<td class="Tabla_Listado" align="center"><strong>Aseos</strong></td>
<td class="Tabla_Listado" align="center"><strong>Precio</strong></td>
</tr>

<tr>
<td class="textito" align="center"><a href="ficha.asp?id=<%=rs("id")%>"><img border="0" width="50" height="45" src="<%=imagen(rs("foto1"))%>"></a></td>
<td class="textito" align="center"><%=rs("referencia")%></td>
<td class="textito" align="center"><%=rs("poblacion_casa")%></td>
<td class="textito" align="center"><%=rs("m2")%></td>
<td class="textito" align="center"><%=rs("Habitaciones")%></td>
<td class="textito" align="center"><%=rs("Baños")%></td>
<td class="textito" align="center"><%=rs("Aseos")%></td>
<td class="textito" align="center"><%=sacar_numero(rs("total")) & " " & moneda %></td>
</tr>






</table>
<%
CuantosRegistros=CuantosRegistros+1

contador = contador + 1
rs.MoveNext
if contador = 4 then
%><tr></tr><%
contador = 0
end if

loop


end if
rs.Close
cnn.Close
set rs=nothing
set cnn=nothing
%>

<%
'Muestro los enlaces
%>
<table align="center">
<tr>
<%
if PaginaActual > 1 then
%>
<td class=Tabla_Menu>
<%Response.Write("&nbsp;<A HREF=resultados.asp?tipo=" & tipo & "&situacion=" & situacion & "&modo=" & modo & "&poblacion=" & poblacion & "&habitaciones=" & habitaciones & "&ba=" & ba & "&aseos=" & aseos & "&precio=" & precio & "&pagina="& PaginaActual-1 & ">12 Anteriores</A>&nbsp;")%>
</td>&nbsp;
<%end if
if PaginaActual < PaginasTotales then
%>
<td class=Tabla_Menu>
<%Response.Write("&nbsp;<A HREF=resultados.asp?tipo=" & tipo & "&situacion=" & situacion & "&modo=" & modo & "&poblacion=" & poblacion & "&habitaciones=" & habitaciones & "&ba=" & ba & "&aseos=" & aseos & "&precio=" & precio & "&pagina=" & PaginaActual+1 &">12 Siguientes</A>&nbsp;")%>
</td>
<%end if%>
</tr></table>




</tr>
<tr>
<td>&nbsp;</td>
<td width=80%>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>


<%=server.execute("pie.asp")%>



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 23:48.