Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Pagina personale utente (parte 2)

Pagina personale per gestire i messaggi.
Pagina personale per gestire i messaggi.
Link copiato negli appunti

Come accennato, lo scopo di questa lezione è quello di capire come si crea la query per la lettura dei messaggi in base alla pagina in cui l'utente si trova. Riproponiamo il codice della query:

073:
074: dim strSql
075: strSql = "SELECT messaggi.id_msg, messaggi.dt_invio, messaggi.titolo,
utenti.login "
076: strSql = strSql & " FROM messaggi, utenti "
077: strSql = strSql & " WHERE messaggi.id_desti='"&intUser&"'
"
078: strSql = strSql & " AND messaggi.id_mitt = utenti.id_user
"
079: strSql = strSql & " LIMIT " & intPartenza &","&intMessaggi
080:

La stringa sql appena proposta ha lo scopo di estrarre dalla tabella messaggi i campi id_msg, dt_invio ed il titolo del messaggio; dalla tabella utenti estrae il campo login.

075: strSql = "SELECT messaggi.id_msg, messaggi.dt_invio, messaggi.titolo,
utenti.login "
076: strSql = strSql & " FROM messaggi, utenti "

Ora dobbiamo capire le condizioni da imporre per estrarre i messaggi corretti. Prima di dar questa spiegazione è necessario rinfrescare la memoria riproponendo la struttura delle due tabelle del database interessate.

Tabella
Messaggi
Name
Type
Lenght/set
Default
Value
id_msg int
10
-
id_mitt int
10
-
id_desti int
10
-
dt_invio varchar
50
-
titolo varchar
50
-
corpo text
-
-
 
Tabella
utenti
Name
Type
Lenght/set
Default
Value
id_user int
10
-
login varchar
20
-
codice varchar
20
-
mail varchar
50
-

Se ricordate le lezioni precedenti, avrete di sicuro capito il perché ho reso in grassetto il campo id_desti della tabella messaggi e il campo id_user della tabella utenti. Ora lo rispiego in modo da rinfrescare il concetto. Il campo utenti.id_user è il valore univoco della tabella utenti e identifica tramite numero il nostro utente. All'interno della tabella messaggi, il valore univoco è l'id del messaggio (id_msg). Gli altri due id che compaiono (id_mitt, id_dest) corrispondono al codice id (ricavato dalla tabella utenti) del mittente e del destinatario del messaggio. Dopo questo breve ripasso, possiamo introdurre la clausola WHERE:

077: strSql = strSql & " WHERE messaggi.id_desti='"&intUser&"'
"
078: strSql = strSql & " AND messaggi.id_mitt = utenti.id_user
"

Come prima richiesta si effettua la ricerca di tutti i messaggi che all'interno del campo messaggi.id_desti contengono il numero univoco dell'utente.

005: dim intUser
006: intUser = request.cookies("messaggistica")("iduser")

Le due righe appena proposte, servono per ricordare da dove proviene il valore contenuto nella variabile intUser. Il cookies viene scritto all'interno della pagina di registrazione utente prima di effettuare il redirect alla pagina messaggi.asp.

Ora veniamo alla seconda clausola della stringa SQL :

078: strSql = strSql & " AND messaggi.id_mitt = utenti.id_user
"

Questa seconda clausola non fa nient'altro che effettuare una ricerca di dove il campo id_mitt della tabella messaggi è uguale al campo id_user della tabella utenti

Ora vedremo come si utilizza il dato ricavato precedentemente per mostrare i messaggi in base alla pagina in cui ci si trova.

079: strSql = strSql & " LIMIT " &
intPartenza &","&intMessaggi

Nella riga appena proposta, è possibile notare la presenza di un nuovo elemento: LIMIT.

Il comando LIMIT ha lo scopo di limitare i risultati estratti ad intMessaggi a partire da intPartenza. Tradotto in parole semplici significa che se la mia query SQL estrae 100 record, il comando li riduce a 10 record (intMessaggi) a partire dal valore contenuto in intPartenza (si ricorda che il valore intPartenza è calcolato sia sul numero di messaggi da mostrare che sulla pagina in cui ci si trova).


Ti consigliamo anche