MySQL non supporta la paginazione nel modo classico di intendere la cosa, tuttavia, con pochi accorgimenti è possibile ovviare a questo limite.
Ci baseremo sullo script #208, ricavandone una versione compatibile con MySQL.
Per prima cosa, occorre aggiungere, in coda alla query SQL, questo pezzo di codice, che utilizza la direttiva LIMIT, supporta solo da MySQL, che consente di limitare i risultati ad un certo numero prestabilito.
<% SQL = "SELECT * FROM Ricerca WHERE Descrizione LIKE '%" & strRicerca & "%'" '... altro codice, identico allo script #208 intStart = CInt((page-1) * RecordsPerPagina) SQL = SQL & " LIMIT " & intStart & ", " & RecordsPerPagina %>
A questo punto è possibile inserire la ruotine che mostra i record trovati, una volta aperta la connessione e creato il recordset.
Infine, per creare la lista con le pagine disponibili, bisogna aggiungere questo ulteriore pezzo di codice:
<% ' RISULTATI TOTALI SQLCount = "SELECT COUNT(*) as totale FROM Ricerca WHERE Descrizione" &_ " LIKE '%" & strRicerca & "%'" set rsCount = Conn.Execute(SQLCount) totale = rsCount("totale") rsCount.Close set rsCount = Nothing ' PAGINE TOTALI maxpages = totale \ RecordsPerPagina ' correzione di eventuali imprecisioni if totale mod RecordsPerPagina <> 0 then maxpages = maxpages + 1 end if ' TUTTE LE PAGINE Response.Write "<P><B>Pagine:</B> " For pag=1 to maxpages Response.Write "<A href='pagina.asp?page=" & pag Response.Write "&" & Server.UrlEncode(strRicerca) Response.write "'>" Response.Write pag Response.Write "</A> " Next Response.Write "</P>" %>
Alcune parti del codice non sono state inserite, ma potete tranquillamente fare riferimento, come già detto, allo script #208 per eventuali integrazioni.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.