Guidainlinea.com - Risorse gratuite per Webmaster

| ASP | PHP | Download | Flash | NEWS | Grafica | .NET | Basi Banner | PhpNuke | Forum | Top100 | Webring |

 
100cocktails
   

 

 

 

 

 

 

Ordiniamo i risultati delle nostre Query

Per dare un aspetto più professionale alla visualizzazione dei nostri database si può implementare qualche accorgimento per permettere agli utenti di effettuare l'ordinamento dei record a piacere cliccando semplicemente sul nome del campo. Mi spiego meglio utilizzando questo esempio: abbiamo una tabella che visualizza nel browser un elenco di record, le colonne rappresentano i campi e le righe i vari record; quindi la prima riga altro non è che l'intestazione della nostra tabella contenente il nome di ogni campo (ID, Cognome, Nome,...), le successive righe conterrano i rispettivi valori; ad ogni nome campo della prima riga è associato un link che permetterà di rivisualizzare la tabella ordinata rispetto a quel campo; dopo la rivisualizzazione della tabella sarà possibile effettuare un ulteriore ordinamento e così via; la prima volta l'ordinamento sarà impostanto in modo decrescente, la seconda crescente, la terza decrescente, e così via alternativamente.

Andiamo ad impostare lo script:

Il database. 
Per prima cosa creiamo un database di tipo ACCESS nominandolo ARCHIVIO.MDB, al suo interno creiamo una tabella di nome Tabella_Archivio e impostiamo dei campi a piacere. Per esempio ID, Cognome, Nome, Data di Nascita, Luogo di Nascita (vi ricordo che questi nomi appariranno nella prima riga della tabella visualizzata a video).

ARCHIVIO.MDB
|
\-Tabella_Archivio
|
+-ID
|
+-Cognome
|
+-Nome
|
+-Data di Nascita
|
\-Luogo di Nascita

Il codice.

Creiamo una pagina di nome LIST.ASP utilizzando il VBScript

***********
LIST.ASP
***********

<%
'Impostiamo la dichiarazione obbligatoria delle variabili
Option Explicit 
'Implementiamo qualche costante dell'ADOVBS
'---- 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 
'Dichiariamo tutte le variabili dello script
Dim db, strSQL, Print_Table, Order, Field, strToolTip
Dim objConn, objRS, fld

'Assegnamo il nome del database
db = "archivio.mdb"
'Impostiamo la SQL
strSQL = "SELECT * FROM tabella_archivio"
'Intercettiamo gli ordini di ordinamento dei record
Order = Request.QueryString("order")
Field = Request.QueryString("field")
'Completiamo la SQL aggiungendo l'eventuale ordinamento 
If Order <> "" Or Field <> "" Then If Order = "asc" Or Order = "desc" Then 
strSQL = strSQL & " ORDER BY [" & Field & "] " & Order 
End If
End If

'Impostiamo i tooltip che compariranno sui link di ordinamento
strToolTip = ""
'Invertiamo il tipo di ordinamento per la prossima selezione dell'utente
'Se è la prima volta che visualizziamo la tabella allora i dati non saranno ordinati, bensì saranno visualizzati così come inseriti nel db
If Order = "" OR Order = "asc" Then 
Order = "desc" 
strToolTip = "Ordine decrescente"
Else Order = "asc" 
strToolTip = "Ordine crescente"
End If 
'Iniziamo a costruire la tabella contenente i record che verrà visualizzata nel browser
Print_Table = Print_Table & "<table cellspacing='2' cellpadding='2'>" & VbCrLf

'Apriamo la connessione
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(db)

'Dichiariamo il recordset e lo popoliamo con la SQL
Set objRS = server.createobject("ADODB.recordset")
objRS.Open strSQL, objConn, adOpenKeyset, adLockReadOnly
'Genero la prima riga della tabella contenente i nomi dei record
If Not objRS.EOF Then 
Print_Table = Print_Table & "<tr>" & VbCrLf 
'Generiamo per ogni campo del db un link per ricaricare la pagina 
'passandole con una querystring il tipo di ordinamento da effettuare 
'e il nome del campo su cui applicarlo 
For Each fld In objRS.Fields 
Print_Table = Print_Table & "<td><b><a href='list.asp?order=" & Order & "&field=" & fld.Name & "' title='" & strToolTip & "'><font face='tahoma' size='2' color='red'>"& fld.Name & "</a></font></b></td>" & VbCrLf 
Next 
Print_Table = Print_Table & "</tr>" & VbCrLf
End If
'Completo la tabella generando le righe relative ai vari record presenti nel db
Do While Not objRS.EOF 
Print_Table = Print_Table & "<tr>" & VbCrLf 
For Each fld In objRS.Fields 
Print_Table = Print_Table & "<td><font face='tahoma' size='2'>" & objRS(fld.Name) & "</font></td>" & VbCrLf 
Next 
Print_Table = Print_Table & "</tr>" & VbCrLf 
objRS.MoveNext
Loop
'Chiudiamo e distruggiamo il recordset
objRS.Close
Set objRS = Nothing

'Chiudiamo e distruggiamo il db
objConn.close
Set objConn = Nothing 
'Con questa istruzione completiamo la tabella da visualizzare
Print_Table = Print_Table & "</table>" 
'Visualizziamo la tabella nel browser
Response.Write "<html>" & VbCrLf & "<title>Ordinamento record - guidainlinea.com</title>" & VbCrLf & "<body>" & VbCrLf
Response.Write "<center>" & VbCrLf & Print_Table & VbCrLf & "</center>" & VbCrLf
Response.Write "</body>" & VbCrLf & "</html>"
%>

Più semplice del previsto. Vi domanderete a cosa serva il VbCrLf. Ho aggiunto questo comando di VBScript, combinazione di ritorno a capo ed avanzamento riga "Chr( 13 ) & Chr( 10 )", per fare in modo che il codice html generato dall'interprete di VBScript sia impostato elegantemente. Infatti, una volta eseguita la pagina nel browser provate a visualizzare il codice. Vedrete qualcosa del genere:
***********
codice html
***********

<html><title>Ordinamento record - guidainlinea.com</title><body><center><table cellspacing='2' cellpadding='2'><tr><td><b><a href='list.asp?order=desc&field=ID' title='Ordine decrescente'><font face='tahoma' size='2' color='red'>ID</a></font></b></td><td><b><a href='list.asp?order=desc&field=Cognome' title='Ordine decrescente'><font face='tahoma' size='2' color='red'>Cognome</a></font></b></td><td><b><a href='list.asp?order=desc&field=Nome' title='Ordine decrescente'><font face='tahoma' size='2' color='red'>Nome</a></font></b></td><td><b><a href='list.asp?order=desc&field=Data di Nascita' title='Ordine decrescente'><font face='tahoma' size='2' color='red'>Data di Nascita</a></font></b></td><td><b><a href='list.asp?order=desc&field=Luogo di Nascita' title='Ordine decrescente'><font face='tahoma' size='2' color='red'>Luogo di Nascita</a></font></b></td><td><b><a href='list.asp?order=desc&field=Provincia' title='Ordine decrescente'><font face='tahoma' size='2' color='red'>Provincia</a></font></b></td></tr><tr><td><font face='tahoma' size='2'>1</font></td><td><font face='tahoma' size='2'>Rossi</font></td><td><font face='tahoma' size='2'>Carlo</font></td><td><font face='tahoma' size='2'>22/01/1970</font></td><td><font face='tahoma' size='2'>Baria</font></td><td><font face='tahoma' size='2'>BA</font></td></tr><tr><td><font face='tahoma' size='2'>2</font></td><td><font face='tahoma' size='2'>Esposito</font></td><td><font face='tahoma' size='2'>Gennaro</font></td><td><font face='tahoma' size='2'>08/11/1974</font></td><td><font face='tahoma' size='2'>Pachino</font></td><td><font face='tahoma' size='2'>SR</font></td></tr><tr><td><font face='tahoma' size='2'>3</font></td><td><font face='tahoma' size='2'>Valle</font></td><td><font face='tahoma' size='2'>Rebecca</font></td><td><font face='tahoma' size='2'>22/04/2000</font></td><td><font face='tahoma' size='2'>Bologna</font></td><td><font face='tahoma' size='2'>BO</font></td></tr><tr><td><font face='tahoma' size='2'>4</font></td><td><font face='tahoma' size='2'>Ricci</font></td><td><font face='tahoma' size='2'>Ugo</font></td><td><font face='tahoma' size='2'>18/10/1948</font></td><td><font face='tahoma' size='2'>Roma</font></td><td><font face='tahoma' size='2'>RM</font></td></tr><tr><td><font face='tahoma' size='2'>5</font></td><td><font face='tahoma' size='2'>Paoloni</font></td><td><font face='tahoma'size='2'>Elena</font></td><td><font face='tahoma' size='2'>24/02/1976</font></td><td><font face='tahoma'size='2'>Catania</font></td><td><font face='tahoma' size='2'>CT</font></td></tr></table></center></body></html>

Ora provate a togliere il VbCrLf e andate a visualizzare il codice. Dal punto di vista pratico non cambierà nulla, lo script funzionerà regolarmente, ma il codice html apparirà tutto su di una riga.

 
 A cura di Massimiliano Luciani

.:: Le sezioni ::.

 .: HTML
 .:
ASP
 .:
PHP
 .:
CSS
 .:
.NET
 .:
CGI/PERL
 .:
Flash
 .:
Download
 .:
JavaScript
 .:
FrontPage
 .:
DreamWeaver
 .:
IIS
 .:
PaintShop Pro
 .:
SQL
 .:
VisualBasic
 .:
XML.NET
 .:
PHPNuke
 .:
PhotoShop
 .:
Basi banner

.:: Script & File ::.

 .: ASP
 .:
.NET
 .:
PHP
 .:
CGI/PERL
 .:
Movies
 .:
Basi Banner
 .:
Programmi

.:: FAQ ::.

 .: ASP
 .:
HTML
 .:
PHP
 .:
CSS

.:: Tutorials ::.

 .: ASP
 .:
PhotoShop
 .:
Flash
 .:
JavaScript

 

 

Guidainlinea.com come homepage |  Aggiungi questa pagina ai preferiti
Home | Manuali | EBooks | Libri | NewsLetter | Community | Corsi | Shopping | Guadagna | Servizi | Mandaci il tuo tutorial | Links
Per qualsiasi informazioni scrivi alla Redazione al Webmaster o per informazioni generali ad info@manuali.net - Note Legali