15 messaggi dal 24 luglio 2002
Ho un problema con la paginazione di record estratti da un database con chiavi di ricerca multiple.
In pratica ho 7 chiavi di ricerca diverse che estraggono dati dal mio database.

Ora ho bisogno di impaginarle ma ho un problema con le pagine successive questo proprio perchè ho 7 stringhe di ricerca e non so come impostare le pagine in modo che mantenga l'interrogazione.

Non so se posso riunire le 7 stringhe in un unica stringa in modo da memorizzarla anche per le pagine successive.
Come è impostato ora lo script mi estrae in modo corretto la prima pagina, poi nelle successive estrae tutti i record che sono nel database non tenendo conto della ricerca fatta.Ed è quello il mio problema di impostazione.

Qualcuno ha un suggerimento?
Vi posto il codice anche se non è corretto per farvi capire il problema
<%

dim conn, strConn

strConn = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " &_
Server.MapPath("aziende.mdb")

Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open StrConn

'PAGINAZIONE

Dim page, sql, RecordsPerPagina, TotalRecords

RecordsPerPagina = 4

page = Request("page")
if page="" then page=1


dim ricerca,ricerca1,ricerca2,ricerca3,ricerca4,ricerca5,ricerca6,ricerca7
ricerca=Request.form("chiave")
ricerca2=Request.form("chiave2")
ricerca3=Request.form("chiave3")
ricerca4=Request.form("chiave4")
ricerca5=Request.form("chiave5")
ricerca6=Request.form("chiave6")
ricerca7=Request.form("chiave7")

sql= "SELECT * FROM elenco WHERE nome_az LIKE '%"&ricerca&"%'AND tipo_az LIKE '%"&ricerca2&"%'AND citta_az LIKE '%"&ricerca3&"%' AND reg_az LIKE '%"&ricerca4&"%' AND naz_az LIKE '%"&ricerca5&"%' AND uff_az LIKE '%"&ricerca6&"%' AND cogn LIKE '%"&ricerca7&"%'"

Set rs = Server.CreateObject("ADODB.Recordset")

rs.Open sql, conn, 1, 3

' paginazione
rs.PageSize = RecordsPerPagina
rs.AbsolutePage = page

' record attivi
TotalRecords = rs.RecordCount

If TotalRecords=0 then
Response.Write "<P>Nessun risultato trovato</P>"
Else

Response.Write "<P>" & TotalRecords & " risultati trovati</P><br>"

For i=1 to RecordsPerPagina

if Not rs.EOF then

%>
<table width="100%" border="1" cellspacing="2" cellpadding="5" bgcolor="#FFCCCC" >

<tr>
<td><b><font face=Arial color=#0033FF size=3> NOME:** </font><font color=#FF0000><%=rs("nome_az")%></td></b>
<td><b><font face=Arial color=#0033FF size=3> TIPOLOGIA:** </font><font color=#FF0000><%=rs("tipo_az")%></td></b>
<td><b><font face=Arial color=#0033FF size=3> VIA: ** </font><font color=#FF0000><%=rs("via_az")%><br></td></b>
</tr>
<tr>

<td><b><font face=Arial color=#0033FF size=3> NUMERO:**</font><font color=#FF0000><%=rs("num_az")%></td></b>
<td><b><font face=Arial color=#0033FF size=3>CITTA':** </font><font color=#FF0000><%=rs("citta_az")%></td></b>
<td><b><font face=Arial color=#0033FF size=3> PROVINCIA:** </font><font color=#FF0000><%=rs("prov_az")%></td></b>
</tr>


<tr>
<td><b><font face=Arial color=#0033FF size=3>CAP:**</font><font color=#FF0000><%=rs("cap_az")%></td></b>
<td><b><font face=Arial color=#0033FF size=3>REGIONE:**</font><font color=#FF0000><%=rs("reg_az")%></td></b>
<td><b><font face=Arial color=#0033FF size=3>NAZIONE:**</font><font color=#FF0000><%=rs("naz_az")%></td></b>
</tr>
<tr>
<td><b><font face=Arial color=#0033FF size=3>COGNOME:**</font><font color=#FF0000><%=rs("cogn")%></td></b>
<td><b><font face=Arial color=#0033FF size=3>NOME:**</font><font color=#FF0000><%=rs("nome")%></td></b>
<td><b><font face=Arial color=#0033FF size=3>UFFICIO:**</font><font color=#FF0000><%=rs("uff_az")%></td></b>
</tr>
<tr>
<td><b><font face=Arial color=#0033FF size=3>TELEFONO:**</font><font color=#FF0000><%=rs("tel")%></td></b>
<td><b><font face=Arial color=#0033FF size=3>FAX:**</font><font color=#FF0000><%=rs("fax")%></td></b>
<td><b><font face=Arial color=#0033FF size=3>CELLULARE:**</font><font color=#FF0000><%=rs("cell")%></td></b>
</tr>
<tr>
<td><b><a href="mailto:<%=rs("mail")%>"><font face=Arial color=#0033FF size=3> E-MAIL:**</font><font color=#FF0000><%=rs("mail")%></td></b>
<td><b><a href="<%=rs("url")%>"><font face=Arial color=#0033FF size=3> SITO WEB:**</font><font color=#FF0000><%=rs("url")%></td></b>
<td><b><font face=Arial color=#0033FF size=3> NOTE:**</font><font color=#FF0000><%=rs("annotazioni")%></td></b><br>
</table>
</body>
</html>
<%
rs.movenext
end if
next
end if
%>
<%

If TotalRecords > 0 then

Response.Write "<P><B>Pagine:</B> "

For p=1 to rs.PageCount

If p <> CInt(Page) then
Response.Write "<A href='ricerca.asp?page=" & p
Response.Write "&" & Server.UrlEncode(ricerca)
Response.write "'>"
Else
' pagina attuale
Response.Write "<B>"
End if

Response.Write p

If p <> CInt(Page) then
Response.Write "</A> "
Else
Response.Write "</B> "
End if

Next

Response.Write "</P>"

End if

' liberiamo le risorse
Rs.Close
Set Rs = Nothing

conn.Close
set conn = Nothing


%>

Il problema sta nel server.UrlEncode che ha una stringa non corretta, ma come faccio se ne ho 7?

Sono disposta anche a cambiare totalmente il codice a me serve che dia il numero di record trovati e le pagine linkate.
Grazie a chiunque mi potrà dare un'idea


Rossella

Rossella
11.886 messaggi dal 09 febbraio 2002
Contributi
Stai tranquilla che se puoi farlo con una, allora lo puoi fare anche con 7. Ci vuole solo un po' più d'attenzione.

Se puoi, azichè usare il metodo POST, usa GET, è più facile per passare le variabili di pagina in pagina.
Così fai:

ricerca=Request.QueryString("chiave")
ricerca2=Request.QueryString("chiave2")
...
ricerca7=Request.QueryString("chiave7")

ora mantieni la tua select che ti restituisce un recordset, bene, la paginazione è uguale in ogni caso, sia che tu abbia usato 1 o 7 chiavi di ricerca.
A questo punto quando un utente clicca "Prossima pagina" devi rieseguire la stessa query, passando gli stessi valori. Dato che hai usato get, puoi accedere a tutta la catena di variabili scrivendo:

Response.Write "<A href=""ricerca.asp?"&Request.QueryString&""">Clicca</a>"

Anche se avessi 40 chiavi, Request.QueryString te le recupera tutte.
Avrai notato che anche Altavista ad esempio, passa le sue chiavi di ricerca attraverso queryString, quindi non può essere tanto male come metodo, no? CIAOO^__^


-----------------------
Da una perla dal saggio:
Quando non hai capito, devi dire "non ho capito", no che dici che hai capito e invece non hai capito un cavolo. Hai capito?
-----------------------

Enjoy learning and just keep making
15 messaggi dal 24 luglio 2002
Purtroppo qualcosa non funziona perchè ho provato in tutti i modi ma la paginazione si sballa nelle pagine successive. Qualcuno ha un'idea di come potrei impaginare i miei risultati? Ci deve essere qualcosa che sbaglio, ma proprio non riesco a vederlo

Rossella

Rossella

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.