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

Como hacer que si hay n registros me muestre un link

Estas en el tema de Como hacer que si hay n registros me muestre un link en el foro de ASP Clásico en Foros del Web. Hola maestros... hace algun tiempo que no me dava una vuelta por aca... jajaj bueno un gusto como siempre pues... al grano.... mi duda es ...
  #1 (permalink)  
Antiguo 04/09/2005, 22:53
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
Como hacer que si hay n registros me muestre un link

Hola maestros... hace algun tiempo que no me dava una vuelta por aca... jajaj bueno un gusto como siempre pues... al grano.... mi duda es que:

Tengo una sentencia SQL que llama a los top 10 articulos de cierta tabla de una base de datos... pero yo quiero que si en la tabla hay mas de 10 registros me muestre un link pense hacer un rs.recordcount y estuve como 1 hora pensando porque no me corria la tontera... pero logico que nunca el rs va a tener mas de 10 registros pues el select lo hago limitandolo a los 10 ultimos registros... entonce mi duda es como puedo hacerlo....

Bueno eso se les agradece como siempre...

PD: Puede que sea una estupidez pero de verdad que ya me la gano.... jajajaj voy por un cafe en una de esas me ilumino.... por lo general resulta... Saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #2 (permalink)  
Antiguo 05/09/2005, 06:25
Avatar de PMP
PMP
 
Fecha de Ingreso: febrero-2003
Ubicación: Chacabuco - Buenos Aires
Mensajes: 214
Antigüedad: 21 años, 3 meses
Puntos: 1
Se me ocurre que hagas un SELECT TOP 11 y que solo imprimas 10 registros, si hay un registro mas imprimes el link.

Código:
'............
Dim I
I = 0
While NOT oRs.EOF AND I < 10
    I = I + 1
    'Imprimes el registro
    oRs.MoveNext
Wend

If NOT oRs.EOF then
   Response.Write("link")
end if

'.........
Saludos
  #3 (permalink)  
Antiguo 05/09/2005, 10:58
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
la verdad es que no es lo que necesito... hoy por la mañana pense en ponerle rs.recordcount = 10 pero aun asi no me muestra el link deveria mostrarmelo o no???? me lo muestra solo si le pongo rs.recordcount < 10 pero no me sirve eso... bueno eso seria gracias
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #4 (permalink)  
Antiguo 05/09/2005, 23:01
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
se me ocurrio poner = 10 pero aun asi no me funciona

Código:
If rs.recordcount = 10 Then 
Responde.Write ("<p align=""center""><a haref=""listado.asp"">Ver todas las noticias</a></p>") 
End If
no se que puede ser les dejo el codigo entero porsi le pillan la tranca

Código:
<% 
'Abre la conexion con la base de datos a traves de una conexion ODBC 
Set con = Server.CreateObject("ADODB.Connection") 
con.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("noticias/noticias.mdb") 
 
'Ejecuta un sentencia SQL de consulta 
sql = "SELECT TOP 10 * FROM Noticias ORDER BY id DESC" 
Set rs = con.Execute(sql) 
'Recorre todas las filas del resultado 
Do While Not rs.EOF 
'Muestra la fila actual 
Response.Write (" <tr valign=""middle"">") 
Response.Write (" <td><img src=""images/spacer.gif"" width=""4"" height=""1""></td>") 
Response.Write (" <td width=""95%""><b><img src=""images/arrow_small.gif"" width=""7"" height=""7"">&nbsp;<a href=noticia.asp?id=" & rs.Fields("id") & ">" & rs.Fields("titulo") & "</a></b>") 
Response.Write (" <br><font color=""#696969"">" & rs.Fields("resumen") & "</font><br><br></td>") 
Response.Write (" <td><img src=""images/spacer.gif"" width=""9"" height=""1""></td>") 
Response.Write (" <td width=""99%"" class=""titletext"">&nbsp;</td>") 
Response.Write (" </tr>") 
'Pasa a la siguiente fila 
rs.MoveNext 
Loop 
If rs.recordcount = 10 Then 
Responde.Write ("<p align=""center""><a haref=""listado.asp"">Ver todas las noticias</a></p>") 
End If 
'Libera memoria 
rs.Close 
Set rs = Nothing 
con.Close 
Set con = Nothing 
%>
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #5 (permalink)  
Antiguo 06/09/2005, 05:29
 
Fecha de Ingreso: diciembre-2004
Ubicación: La Rioja
Mensajes: 336
Antigüedad: 19 años, 6 meses
Puntos: 2
Hola, se me ocurre que hacer una consulta a toda la tabla para saber el número de registros total:

sql2 = "SELECT * FROM Noticias"
Set rs2 = con.Execute(sql2)

If rs2.recordcount > 10 Then
Responde.Write ("<p align=""center""><a haref=""listado.asp"">Ver todas las noticias</a></p>")
End If

Espero que te sirva
  #6 (permalink)  
Antiguo 06/09/2005, 07:20
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Cierto ...., solo quita el TOP 10 (o también puedes usar otra consulta con un Select COUNT(*) ....., para saber el No. de Reg.)
  #7 (permalink)  
Antiguo 06/09/2005, 10:19
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
mmm bueno queria evitar el hecho de hacer una doble llamada a la base de datos pero veo que es inevitable.. bueno gracias de todos modos amigos saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #8 (permalink)  
Antiguo 07/09/2005, 13:11
Avatar de PMP
PMP
 
Fecha de Ingreso: febrero-2003
Ubicación: Chacabuco - Buenos Aires
Mensajes: 214
Antigüedad: 21 años, 3 meses
Puntos: 1
Disculpa que insista pero me parece que el ejemplo que te pase, encaja perfectamente para lo que necesitas

Código:
<%
'Abre la conexion con la base de datos a traves de una conexion ODBC 
Set con = Server.CreateObject("ADODB.Connection") 
con.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("noticias/noticias.mdb") 
 
'Ejecuta un sentencia SQL de consulta 
sql = "SELECT TOP 11 * FROM Noticias ORDER BY id DESC" 
Set rs = con.Execute(sql) 
'Recorre todas las filas del resultado 
Dim I
I = 0
While NOT rs.EOF AND I < 10
I = I + 1
'Muestra la fila actual 
Response.Write (" <tr valign=""middle"">") 
Response.Write (" <td><img src=""images/spacer.gif"" width=""4"" height=""1""></td>") 
Response.Write (" <td width=""95%""><b><img src=""images/arrow_small.gif"" width=""7"" height=""7"">&nbsp;<a href=noticia.asp?id=" & rs.Fields("id") & ">" & rs.Fields("titulo") & "</a></b>") 
Response.Write (" <br><font color=""#696969"">" & rs.Fields("resumen") & "</font><br><br></td>") 
Response.Write (" <td><img src=""images/spacer.gif"" width=""9"" height=""1""></td>") 
Response.Write (" <td width=""99%"" class=""titletext"">&nbsp;</td>") 
Response.Write (" </tr>") 
'Pasa a la siguiente fila 
rs.MoveNext 
Wend
If NOT rs.EOF Then 
Responde.Write ("<p align=""center""><a haref=""listado.asp"">Ver todas las noticias</a></p>") 
End If 
'Libera memoria 
rs.Close 
Set rs = Nothing 
con.Close 
Set con = Nothing 
%>
Saludos
  #9 (permalink)  
Antiguo 07/09/2005, 20:25
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
PMP si te lo agradezco pero la verdad es que ahi explique solo lo que no me resultaba pero lo que quiero es que diga hay tantos registros y abajo poner mostrar todos los registros con el link en el eventual caso... osea para lo de mostrar el link que le que me dices si funciona y de maravillas pero = necesitaria una segunda consulta para saber cuantos registros hay en mi tabla.... pero de todas maneras muchisimas gracias por la ayuda saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #10 (permalink)  
Antiguo 08/09/2005, 04:34
Avatar de PMP
PMP
 
Fecha de Ingreso: febrero-2003
Ubicación: Chacabuco - Buenos Aires
Mensajes: 214
Antigüedad: 21 años, 3 meses
Puntos: 1
Ah!!! ahora entiendo, perdon mi torpeza.
Y si en ves de hacer un "SELECT TOP 10" haces simplemente un "SELECT", imprimes los 10 primeros registros (si es que los hay) y luego compruebas si hay mas registros. En caso de haberlo imprimes el link y haces un recordcount.
  #11 (permalink)  
Antiguo 08/09/2005, 08:33
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Cita:
Iniciado por Myakire
Cierto ...., solo quita el TOP 10 (o también puedes usar otra consulta con un Select COUNT(*) ....., para saber el No. de Reg.)
one more time
  #12 (permalink)  
Antiguo 08/09/2005, 09:13
Avatar de onlykfk  
Fecha de Ingreso: agosto-2005
Ubicación: 20°45' Latitud Norte 100°
Mensajes: 121
Antigüedad: 18 años, 9 meses
Puntos: 1
Checate este link, talves te pueda interesar

http://support.microsoft.com/default...b;en-us;202125

Saludos...
__________________
Yo tan sólo se, que no he senado
  #13 (permalink)  
Antiguo 08/09/2005, 22:39
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
realmente fue una tontera... jajajaj ahora me ilumine y lo que dice PMP y Myakire (jajajaja ahora me esfuerzo en escribirlo bien :P jajajajajjaa) con el código que me diste en un principio y la consulta con un select funcionaria de maravilla osea se me acaba de ocurrir no lo he probado... pero lo pruebo y les comento... saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #14 (permalink)  
Antiguo 09/09/2005, 08:08
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Se te agradece el esfuerzo, jejeje, ya ves como hay gente que solo espera algo "para hacer leña" (sin hacer referencias, jeje)
  #15 (permalink)  
Antiguo 09/09/2005, 21:05
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
jajajajajjajaja osea nisiquiera hay que mencionar nombres :P jajajajjaja.... bueno pero no es para eso que escribo es para comentar que funciono de maravilla... muichisimas gracias nuevamente
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
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 00:08.