Newsgroup: it.comp.www.asp
Titolo: risultati della ricerca tipo altavista

Ciao a tutti.
Vorrei mettere su un mio sito, a seguito di una ricerca su database, una
cosa che vedo in tutti i motori di ricerca, e cioè la possibilità di sapere
ad inizio pagina quante occorrenze soddisfano i criteri di ricerca (e fin
qui tutto OK, riesco a farlo tranquillamente con una ricerca sul database e
una variabile che si incrementa per ogni item trovato).
Vorrei poi visualizzare i primi 20 item (e da qui in poi viene
l'irrealizabile...HELP ME!) con a fondo pagina i link per l'accesso diretto
ad una eventuale seconda schermata con gli altri 20 item trovati, una terza
eventuale, ecc... come su Arianna o Altavista.
Proprio non riesco a concettualizzare come programmare questi link a fondo
pagina...
Qualche anima pia che mi indirizzi sulla buona strada?
Grazie 1000,
Marco


Devi usare una funzione del recordset chiamata "paginazione" se non erro (è
quasi l'una di notte e non ho le idee molto chiare). Comunque su
www.aspitalia.com
 c'è un articolo che spiega perfettamente come fare quello
che tu desideri.
Se non sbaglio lo trovi tra gli articoli sui database con proprio il nome:
"un motore di ricerca per il tuo sito".
Ciao
Andrew

Se ho capito bene dalla tua descrizione quello che vuoi fare tu sono due
cose:
1) contare il numero di righe trovate dalla tua select. TU ora incrementi
una variabile e la stampi...credo sia molto più veloce aggiungere alla tua
richiesta anche un campo "count(id) as numero_righe" che conta le righe
(supponendo che la tua tabella contenga il campo ID)
2) fare la paginazione dei dati...se hai MSDN puoi trovare un esempio ben
fatto e semplice (lo so è incredibile) facendo una ricerca se non ricordo
male con le parole chiavi "paging asp". Altrimenti te lo dico io a parole
(purtroppo non ho qui codice di esempio):
crei un recordset...imposti quanti dati vuoi per pagina (con
rs.pagesize=...) .... lascia perdere la mia ignobile spiegazione e vai pure
su 
http://www.asptoday.com/articles/19991101.htm
 (ho trovato adesso il link)
Spero di esserti stato utile
ciao
Alessandro
www.mio.it
www.mio.it/vetrinalavoro
www.mio.it/burchiellaro


Questo è un Sample di Microsoft, fa esattamente quello che cerchi.
<%
'---- CursorTypeEnum Values ----
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
'---- LockTypeEnum Values ----
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4
sql = Request("sql")
If sql = "" Then
      Response.Redirect("Query.asp")
End If
Set Conn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.RecordSet")
Conn.Open "ADOSamples"
RS.Open sql, Conn, adOpenKeyset,adLockReadOnly
RS.PageSize = 5 ' Number of rows per page
if Request("Action") = "" Then
      FormAction = "Results.asp"
else
      Response.Redirect("Query.asp?sql=" & Server.URLEncode(sql))
end if
ScrollAction = Request("ScrollAction")
if ScrollAction <> "" Then
      PageNo = mid(ScrollAction, 5)
      if PageNo <  1 Then
           PageNo = 1
      end if
else
      PageNo = 1
end if
RS.AbsolutePage = PageNo
%>
<HTML>
<HEAD><TITLE>Simple ADO Page Scrolling Example - Results</TITLE></HEAD>
<BODY BGCOLOR=#FFFFFF>
<H1>Simple ADO Page Scrolling Example - Results</H1>
<HR>
<H2>Page <%=PageNo%></H2>
<P>
<FORM METHOD=GET ACTION="<%=FormAction%>">
<%  Do while not (RS is nothing) %>
      <TABLE BORDER=1>
      <TR>
      <%  For i = 0 to RS.Fields.Count - 1 %>
           <TD><FONT COLOR="BLUE"><B><%=RS(i).Name %></B></FONT></TD>
      <%  Next %>
      </TR>
      <%
      RowCount = rs.PageSize
      Do While Not RS.EOF and rowcount > 0
      %>
      <TR>
      <%  For i = 0 to RS.Fields.Count - 1 %>
           <TD>
           <%
           ' Note: The following is a bit of a hack...If the column name
contains
           ' the string "URL" anywhere in it, assume it is a URL to a gif or
jpg
           ' file and generate the HTML to get the image and display. This
works
           ' for the Products table in the Adventure Works database, but is
not a
           ' general purpose solution.
           If InStr(RS(i).Name, "URL") > 0 Then
                Response.Write "<img src=""" & RS(i) & """>"
           Else
                Response.Write RS(i)
           End If
           %>
           </TD>
      <%  Next %>
      </TR>
      <%
      RowCount = RowCount - 1
      RS.MoveNext
      Loop
      %>
      </TABLE>
      <P>
      <%
      set RS = RS.NextRecordSet
Loop
Conn.Close
set rs = nothing
set Conn = nothing
%>
</TABLE>
<P><P>
<INPUT TYPE="HIDDEN" NAME="sql" VALUE="<%=sql%>">
<%  if PageNo > 1 Then %>
<INPUT TYPE="SUBMIT" NAME="ScrollAction" VALUE="<%="Page " & PageNo-1%>">
<%  end if %>
<%  if RowCount = 0 Then %>
<INPUT TYPE="SUBMIT" NAME="ScrollAction" VALUE="<%="Page " & PageNo+1%>">
<%  end if %>
<INPUT TYPE="SUBMIT" NAME="Action" VALUE="Another Query">
</FORM>
<!--#include virtual="/ASPSamp/Samples/srcform.inc"-->
</BODY>
</HTML>
Goldrake wrote in message ...


 Andrew

Mille grazie!
Marco