>> Torna all'Homepage <<
Contattaci Entra nei forum Cerca nel sito
News della settimana ASP: esempi di pagine dinamiche Trucchi e suggerimenti per il PC Manuali e guide I dossier e gli approfondimenti di AmicoPc Il sito della settimana I racconti di Armando Staffa Chi siamo
     
 

 

Scarica i file
Scarica i file
citati in questa pagina

 


REALIZZARE UN SONDAGGIO (versione avanzata)

REPORT.ASP
Questa pagina ha il compito di visualizzare il risultato del sondaggio attuale nonché di eventuali sondaggi precedenti.
Cominciamo a scrivere le intestazioni della pagina.

<html>
<head>
<title>Risultati sondaggio</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style TYPE="text/css">
<!--
A:link { text-decoration: none; }
A:visited { text-decoration: none; }
A:active {text-decoration: none; }
A:hover {text-decoration: underline; }
A:hover {color: orange }
.link:hover {color: #000000; }
-->
</style></head>

<body bgcolor="#FFFFFF" text="#333333" link="#000099" vlink="#000099" alink="#000099">

Creiamo la connessione al database e selezioniamo i sondaggi presenti, ordinandoli in base al campo contatore in ordine decrescente, in modo che il sondaggio più recente (ovvero quello attuale) sia visualizzato al primo posto.

Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("mdb-database/sondaggio.mdb")
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "select * from sondaggio order by id desc", conn

Dato che vogliamo visualizzare il risultato di tutti i sondaggiu presenti, anche quelli vecchi, le operazioni che andremo a compiere dovranno essere ripetute finché non si giunge all'ultimo reocrd del database (do while not rs.eof)

do while not rs.eof

Nella variabile prima memorizziamo il valore prelevato dal campo primo del database. Così anche per la variabile seconda.

prima=rs("primo")
seconda=rs("secondo")


Il sondaggio in questione può avere da un minimo di due ad un massimo di cinque opzioni di scelta. Nel caso in cui le opzioni siano solo due, i campi terzo, quarto, quinto (ovvero i campi in cui sono memorizzari i testi di queste opzioni) avranno come unico valore il simbolo -.
Pertanto se rs("tre") (quindi se il sondaggio prevede una terza opzione di scelta) è diverso da "-" allora la variabile terza assumerà il valore prelevato dal campo terzo del database (ovvero conterrà il numero di voti ottenuti dalla terza opzione).
In caso contrario la variabile in questione avrà valore pari a zero (else terza = 0).

if rs("tre") <> "-" then
terza=rs("terzo")
else
terza = 0
end if

Ugualmente per le variabili quarta e quinta.

if rs("quattro") <> "-" then
quarta=rs("quarto")
else
quarta=0
end if

if rs("cinque")<>"-" then
quinta=rs("quinto")
else
cinque=0
end if

Ora contiamo il numero di voti totali. Anche se il sondaggio ha meno di cinque opzioni, noi sommiamo tutte le variabili appena create: infatti abbiamo detto che nel caso in cui un'opzione non sia selezionabile il relativo campo conterrebbe il simbolo '-' e di conseguenza la variabile associata avrebbe valore zero.
Pertanto il codice da inserire diventa:

totale= (prima + seconda + terza + quarta + quinta)

Verifichiamo che il totale abbia un valore diverso da zero (ovvero almeno una persona ha votato): in quetso modo evitiamo di dividere un numero per zero (cosa che genera un errore durante l'esecuzione).

IF totale<>0 THEN

Calcoliamo le percentuali per ogni opzione del sondaggio.
Utilizziamo il metodo già visto per le due precedenti versioni del sondaggio 'format.percent', la cui struttura è

format.percent(numero, cifre_decimali)

dove il numero da trasformare in percentuale è dato dalla variabile divisa per il totale.
I valori così ottenuti sono memorizzati nella variabile prima2, seocnda2, terza2...

prima2= FormatPercent((prima / totale), 1)
seconda2= FormatPercent((seconda / totale), 1)
terza2= FormatPercent((terza / totale), 1)
quarta2= FormatPercent((quarta / totale), 1)
quinta2= FormatPercent((quinta / totale), 1)

Nel caso in cui nessuno abbia ancora espresso un voto valido, il totale avrà valore zero. Di conseguenza tutte le variabili (in cui sono memorizzate le relative percentuali) avranno valore pari a zero.

ELSE
prima2 = 0
seconda2 = 0
terza2 = 0
quarta2 = 0
quinta2 = 0
END IF

Ora prendo le percentuali così ottenute (senza decimali) e moltiplico per due: ottengo così un valore che utilizzerò per specificare la dimensione della barre colorate. In questo modo al variare della percentuali di un'opzione, la relativa barra si modificherà in proporzione.
Utilizziamo la funzione Mid(numero,inizio,fine) dove numero è la percentuale di voti per la prima opzione, inizio è la prima cifra da prendere (ovvero quella nella posizione uno) e fine è l'ultima cifra del numero da prendere (ovvero la posizione due, in quanto non utilizziamo i decimali).

prima3 = (Mid( prima2, 1, 2))*2
seconda3 = (Mid( seconda2, 1, 2))*2
terza3 = (Mid( terza2, 1, 2))*2
quarta3 = (Mid( quarta2, 1, 2))*2
quinta3 = (Mid( quinta2, 1, 2))*2
%>

 

<< indietro

Utenti connessi: 42

Invia questa pagina ad un amico

 

 

 

Chi siamo | Pubblicità | Note sulla privacy | Dicono di noi
Grafica cura di Paolo Omero
- Stefania Migliorucci