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

asp me tiene loco

Estas en el tema de asp me tiene loco en el foro de ASP Clásico en Foros del Web. hola amigos del foro ya no se que hacer necesito saber como se hace cuando yo coloco la palabra a buscar en mi buscador interno ...
  #1 (permalink)  
Antiguo 20/10/2007, 08:49
 
Fecha de Ingreso: octubre-2007
Mensajes: 106
Antigüedad: 17 años, 6 meses
Puntos: 0
Pregunta asp me tiene loco

hola amigos del foro ya no se que hacer necesito saber como se hace cuando yo coloco la palabra a buscar en mi buscador interno me da los resultados ejemplo me da 20 resultados yo quiero seleccionar 1 de los 20 y al seleccionarlo quiero que se me abra otra pagina pero con toda la informacion que contiene el articulo que seleccione que me muestre fotos y todo lo que contiene en la database access .....

help me please, minä tarvisen apu
  #2 (permalink)  
Antiguo 20/10/2007, 11:40
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Re: asp me tiene loco

Bueno, la idea es pasar en ese link el id del artículo, de tal manera que en la página de detalle, lo puedas recoger y hacer un query a tu base de datos para traer los campos necesarios del artículo donde su id sea igual a lo que llegó por querystring.


Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 20/10/2007, 15:55
 
Fecha de Ingreso: octubre-2007
Mensajes: 106
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: asp me tiene loco

hola si esa es la idea pero como la ejecuto yo solo tengo el buscandor hecho ya donde poner estas cosas del querystring me lo podrias explicar bien por favor...

gracias por la ayuda..
  #4 (permalink)  
Antiguo 20/10/2007, 16:25
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Re: asp me tiene loco

Pero necesitamos mas datos, hace poco hicimos un pequeño script que suponía una página de detalles pero no la encuentro con nuestro poderoso buscador, si nos proporcionas:

1. La estructura de la tabla(s) de detalles
2. La forma en que construyes tus resultados de buscador

Creo que te podremos ayudar mejor.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 21/10/2007, 03:01
 
Fecha de Ingreso: octubre-2007
Mensajes: 106
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: asp me tiene loco

hola aqui voy a colocar los codigos que tengo por el momento...
este es el buscador ...
si tu sabes como hacer eso que quiero podrias modificar el codigo por favor te lo agradeceria mucho porque yo no se como.....

busca.htm

<html>

<head>
<title>Busqueda</title>
</head>
'Post a buscar.asp
<form method="Post" action="buscar.asp">
<body bgcolor="#FFFFCC">
<p align="center"><font face="Tahoma" size="2"><b><i>Ingrese Palabra a buscar</i></b></font>

</p>
<p align="center"><input type="text" name="palabra" size="20">

</p>

<p align="center">
<input type="submit" value="Buscar" name="boton1">
<input type="reset" value="Restablecer" name="boton"></form>
<p> </p>
</body>

</html>


buscar.asp

<html>

<head>
<title>Buscar datos</title>
</head>

<body bgcolor="#FFFFCC">
'Esta linea nos dira los resultados obtenidos con la palabra clave
<p><font face="Tahoma" size="2">Resultados obtenidos con <strong><%=Request("Palabra") %></strong></font></p>

<%
'realizamos la conexión de la Base de Datos
Dim Conexion,Tabla
Set Conexion=Server.CreateObject("adodb.connection")
Set Tabla=Server.CreateObject("adodb.recordset")
Conexion.Open "Driver={Microsoft Access Driver (*.mdb)}; " & "Dbq=" & Server.MapPath("base.mdb")
'definimos las variables de busqueda
Dim Temp
'Creamos la sentencia SQL que extrae de la base las páginas que tienen la palabra que buscamos
'buscando con el operador LIKE obtenemos apariciones del substring escrito en el formulario, entre las palabras clave

Temp="Select * From Tabla1 Where UCase(pal) like '%" & UCase(Request("palabra")) & "%'"

Tabla.Open Temp, Conexion
If Tabla.BOF And Tabla.EOF Then
%>
'si no encuentra nada nos da este mensaje
<p><font face="Tahoma" size="2">No se ha encontrado nada con <strong><%=Request("palabra")%></strong> en la Base de Datos</font></p>

<%
Else
'aquí comienza el Script que nos muestra los resultados,
'si los encuentra en la tabla
%>
<div align="center"><center>
<table border="1" cellpadding="0" cellspacing="0" width="100%" height="74" bordercolor="#C0C0C0">
<tr>
<td width="28%" height="19">
<p align="center"><strong><font face="Tahoma" size="2">Categoria</font></strong>
</td>
<td width="28%" height="19">
<p align="center"><strong><font face="Tahoma" size="2">Nombre de la pagina</font></strong></p>
</td>
<td width="52%" height="19">
<p align="center"><strong><font face="Tahoma" size="2">Descripcion</font></strong>
</td>
<td width="19%" height="19">
<p align="center"><strong><font face="Tahoma" size="2">Url</font></strong></p>
</td>
</tr>
<% While Not Tabla.EOF%>
<tr>
<td width="28%" bgcolor="#FFCC00" height="51">
<p align="center"><font face="Tahoma" size="2"><%=Tabla.Fields("Categoria")%></font></td>
<td width="28%" bgcolor="#FFCC00" height="51">
<p align="center"><font face="Tahoma" size="2"><%=Tabla.Fields("Nombre")%></font></td>
<td width="52%" bgcolor="#FFCC00" height="51">
<p align="center"><font face="Tahoma" size="2"><%=Tabla.Fields("Des")%></font></td>
<td width="19%" bgcolor="#FFCC00" height="51">
;'Convertimos los datos URL en el vinculo de la palabra IR
<p align="center"><a href="<%=Tabla.Fields("url")%>"><font face="Tahoma" size="2">Ir</font></a>
</tr>
<%
'si encuentra mas de un resultado nos hace una celda mas en la tabla
Tabla.MoveNext
Wend
Tabla.Close
Conexion.Close
End If
%>
</table>
</center></div>
<p align="center"><font face="Tahoma" size="2">Busquedas</font></p>
<p align="center"><font face="Tahoma" size="2">2002</font></p>
<p align="center"> </p>


</body>
</html>

la base de datos que ocupo es access.....
  #6 (permalink)  
Antiguo 21/10/2007, 15:49
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Re: asp me tiene loco

Hola de nuevo, bueno, no se que datos quieres traer por eso te habia pedido la estructura de las tablas de detalle, asi que aqui esta un boceto de lo que tienes que hacer:

Código:
<% While Not Tabla.EOF%>
<tr>
<td width="28%" bgcolor="#FFCC00" height="51">
<p align="center"><font face="Tahoma" size="2"><%=Tabla.Fields("Categoria")%></font></td>
<td width="28%" bgcolor="#FFCC00" height="51">
<p align="center"><font face="Tahoma" size="2"><a href="detalles.asp?id=<%=Tabla.Fields("campo_id")%>"><%=Tabla.Fields("Nombre")%></a></font></td>
<td width="52%" bgcolor="#FFCC00" height="51">
<p align="center"><font face="Tahoma" size="2"><%=Tabla.Fields("Des")%></font></td>
<td width="19%" bgcolor="#FFCC00" height="51">
;'Convertimos los datos URL en el vinculo de la palabra IR
<p align="center"><a href="<%=Tabla.Fields("url")%>"><font face="Tahoma" size="2">Ir</font></a>
</tr>
<%
'si encuentra mas de un resultado nos hace una celda mas en la tabla
Tabla.MoveNext
Wend

Código:
'detalles.asp
id = Rquest.QueryString("id")
strSQL = "SELECT campos FROM tabla WHERE campo_id = "&id
rs.Open strSQL conexion, 3, 3

if not rs.EOF then
   'Aqui devuelves el HTML con los datos
else
   %>No se encontro el registro<%
end if

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 22/10/2007, 06:24
 
Fecha de Ingreso: octubre-2007
Mensajes: 106
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: asp me tiene loco

hola muchas gracias amigo me funciona bien pero eso del detalla.asp me da error tuve que reemplazarlo por otro pero muchas gracias y tengo otra duda ahora..

como puedo traer los datos que estan en mi data base pero solo los que estan porque es de un formulario que la gente hace que nunca completa todo asi que quiero traer solo lo que relleno en el formulario...

muchas gracias
  #8 (permalink)  
Antiguo 22/10/2007, 15:09
 
Fecha de Ingreso: octubre-2007
Mensajes: 106
Antigüedad: 17 años, 6 meses
Puntos: 0
tengo problema con asp

hola amigos del foro ya no se que hacer necesito saber como se hace cuando yo coloco la palabra a buscar en mi buscador interno me da los resultados ejemplo me da 20 resultados yo quiero seleccionar 1 de los 20 y al seleccionarlo quiero que se me abra otra pagina pero con toda la informacion que contiene el articulo que seleccione que me muestre fotos y todo lo que contiene en la database access .....

help me please, minä tarvisen apu

la idea es pasar a la pagina con la id del articulo seleccionado aqui les mando el codigo ayuda por favorr...

anteriormente me ayudaron mucho pero me equiboque de codigo no era ese el buscador que estoy utilizando...

<%
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
titulo = request.querystring("titulo")
artista = request.querystring("artista")
anio = request.querystring("anio")
orden = request.querystring("orden")
alf = request.querystring("alf")
cantidad = request.querystring("cantidad")
if cantidad="10" then
mostrar = 10
elseif cantidad="20" then
mostrar = 20
elseif cantidad="30" then
mostrar = 30
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 noticias where UCase(titulo) like '%" & UCase(Request("titulo")) & "%' AND UCase(artista) like '%" & UCase(Request("artista")) & "%' AND UCase(anio) like '%" & UCase(Request("anio")) & "%' 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
'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 style="background-color: #FFFFF4">
<%
' 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 encontraron <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=Artista&titulo=<%=titul o%>&cantidad=10">Repetir la búsqueda sin restricciones</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="center">
<center>
<table border="1" cellspacing="1" style="border-width:0; border-collapse: collapse" bordercolor="#111111" width="87%" id="AutoNumber1">
<tr>
<td width="21%" bgcolor="#CCCCFF" style="border-left:medium none #111111; background-color: #DDDDFF; border-right-style:none; border-right-width:medium; border-top-style:none; border-top-width:medium; border-bottom-style:none; border-bottom-width:medium" align="center"><b><font color="#003366" size="2" face="Arial">Ciudad</font></b></td>
<td width="22%" bgcolor="#CCCCFF" style="border-style: none; border-width: medium; background-color: #DDDDFF; text-align:center"><b><font color="#003366" size="2" face="Arial">Pais</font></b></td>
<td width="25%" bgcolor="#CCCCFF" style="border-style: none; border-width: medium; background-color: #DDDDFF" align="center">
<p align="center"><b><font color="#003366" size="2" face="Arial">Nombre</font></b></td>
<td width="20%" bgcolor="#CCCCFF" style="border-style: none; border-width: medium; background-color: #DDDDFF" align="center">
<p align="center"><b><font color="#003366" size="2" face="Arial">Categoria</font></b></td>
<td width="12%" bgcolor="#CCCCFF" style="border-right:medium none #111111; background-color: #DDDDFF; border-left-style:none; border-left-width:medium; border-top-style:none; border-top-width:medium; border-bottom-style:none; border-bottom-width:medium" align="center">
<p align="center" style="text-align: center"><b><font color="#003366" size="2" face="Arial">NuHab</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="#F3F3F3"
colorfila=0
end if
%>

<tr>
<td width="21%" style="border-style:none; border-width:medium; background-color: <%= color %>; "><font face="Arial" size="2">
<div align="center"><b><%=RS("artista")%></b> </div></td>
<td width="22%" style="border-style:none; border-width:medium; background-color: <%= color %>; text-align:left; "><div align="center"><font face="Arial" size="2"><%=RS("titulo")%></a></font> </div></td>
<td width="13%" align="center" style="border-style:none; border-width:medium; background-color: <%= color %>; text-align:center; "><font face="Arial" size="2"><%=RS("tracks")%> </td>
<td width="20%" align="center" style="border-style:none; border-width:medium; background-color: <%= color %>; text-align:center; "><font face="Arial" size="2"><%=RS("anio")%> </td>
<td width="12%" align="center" style="border-style:none; border-width:medium; background-color: <%= color %>; text-align:center; ">
<p><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>

</center>
</div>

<%
' Cerramos y limpiamos...
RS.Close
Set RS = Nothing
oConn.Close
Set oConn = Nothing
%>
<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=30&page=<%= pagina_actual - 1 %>&titulo=<%=titulo%>&artista=<%=artista%>&orden=< %=orden%>&anio=<%=anio%>&cantidad=<%=cantidad%>">
<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=30&page=<%= I %>&titulo=<%=titulo%>&artista=<%=artista%>&orden=< %=orden%>&anio=<%=anio%>&cantidad=<%=cantidad%>">< %= I %></a>
<%
End If
Next 'I

If pagina_actual < cant_paginas Then
%> </font> <a href="resultados.asp?eje=30&page=<%= pagina_actual + 1 %>&titulo=<%=titulo%>&artista=<%=artista%>&orden=< %=orden%>&anio=<%=anio%>&cantidad=<%=cantidad%>">
<font face="Arial">[ </font>
</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>

quiero pasar con el nombre track a la otra pagina donde contenga la informacion...
  #9 (permalink)  
Antiguo 08/11/2007, 21:15
 
Fecha de Ingreso: octubre-2007
Mensajes: 191
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: asp me tiene loco

mmmm interesante tu codigo compadre.......lo vamos a probar
  #10 (permalink)  
Antiguo 09/11/2007, 04:56
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
De acuerdo Re: asp me tiene loco

Veamos si puedo ayudarte

Primero

En la sentencia SQL

strsql = "SELECT * FROM noticias where UCase(titulo) like '%" & UCase(Request("titulo")) & "%' AND UCase(artista) like '%" & UCase(Request("artista")) & "%' AND UCase(anio) like '%" & UCase(Request("anio")) & "%' order by "& orden & " "&alf

haces referencia a todos los campos (ese * significa todos los campos) Supongo que entre todos ellos (que no nos has puesto la estructura de la tabla en la que buscas) hay uno llamado algo como id el cual es unico, es clave primaria y casi seguro autonumérico ¿verdad? Ese campo es el que vamos a utilizar para enviarselo a una página que tendrás que crear la cual deberá esperar ese id para buscarlo en la tabla. Recuerda que tienes que hacer esa segunda página que, por ejemplo, llamaremos detalle.asp.

Segundo

En la iteración que haces con los registros (el do while) vas dibujando una fila de una tabla con cada registro que lees ¿verdad? Ese es el mejor sitio para hacer referencia a esa segunda página que llamaremos.

Por ejemplo, vamos a usar este campo para ello:

Código:
%>

        <tr>
 <td width="21%" style="border-style:none; border-width:medium; background-color: <%= color %>; "><font face="Arial" size="2">
        <div align="center"><b><%=RS("artista")%></b> </div></td>
 <td width="22%" style="border-style:none; border-width:medium; background-color: <%= color %>; text-align:left; "><div align="center"><font face="Arial" size="2"><%=RS("titulo")%></a></font> </div></td>
<td width="13%" align="center" style="border-style:none; border-width:medium; background-color: <%= color %>; text-align:center; "><font face="Arial" size="2"><%=RS("tracks")%> </td>
<td width="20%" align="center" style="border-style:none; border-width:medium; background-color: <%= color %>; text-align:center; "><font face="Arial" size="2"><%=RS("anio")%> </td>
<td width="12%" align="center" style="border-style:none; border-width:medium; background-color: <%= color %>; text-align:center; ">
      <p><font face="Arial" size="2" color="#FF0000"><%=RS("precio")%> </td>
    </tr>
<%
Con el título vamos a hacer un enlace a la página detalle.asp

En vez de <%=RS("titulo")%> vamos a poner

<a href="detalle.asp?id=<%=RS("id")%>"><%=RS("titulo")%></a>

Esto permitirá al usuario pulsar sobre el enlace y solicitar la página detalle.asp con un parámetro llamado id que contiene el identificador único de ese registro. Una vez obtenido ese dato único de registro (no hay otro con ese valor en ese campo) en la página detalle.asp no tienes más que llamarlo y rellenar los datos:


if isNumeric(request.QueryString("id") then
sql = "Select * FROM noticias WHERE id=" & request.QueryString("id")
else
response.write("Mentirosillo, que me la quieres colar. Eso no es lo que quiero.")
response.end()
end if




Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
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:23.