#268 - La paginazione con MySQL

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.


Approfondimenti

Commenti

Esprimi il tuo giudizio su questo script:

Per procedere devi essere autenticato.

fratone scrive:
#268 - La paginazione con MySQL

Non riesco a farlo funzionare. Sicuramente è colpa mia perché sono un po` tonto, però non penso che costasse molta fatica scrivere un esempio più ...
lunedì 1 settembre 2003 | 2 risposte

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.




IN EVIDENZA
MISC