La paginazione con MySQL

di Daniele Bochicchio, in Classic ASP, Database, Coding,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi