Come realizzare un Forum di Discussione - Lettura del Forum
Ora che abbiamo creato il nosto database dobbiamo creare la pagina ASP che ci permetterà di leggere i vari messaggi, argomenti e topic.
La Grafica Per visualizzare i vari dati del forum userò una grafica essenziale utilizzando varie tabelle, nulla vieta di aggiungere immagini o di stravolgere completamente la struttura HTML della pagina, quello che qui studieremo sarà principalmente la parte di script. Visualizzazione dei Topic
Creeremo la pagina forum.asp che ci permetterà di interagire col forum; la pagina
visualizzerà distintamente i topic, gli argomenti in ogni topic e i messaggi di ogni argomento.
Per sapere cosa visualizzare passeremo una stringa tramite l'url che indicherà il codice del topic o
dell'argomento e un'altra stringa per sapere appunto cosa mostrare.
Vediamo che sono presenti 4 colonne contenenti il nome del topic, la descrizione, la data e il nome dell'autore dell'ultimo messaggio, il numero di argomenti e di messaggi associati al topic. Per prima cosa scriviamo la stringa SQL necessaria per ricavare i primi dati che ci occorrono:
select
(select COUNT(*) from ARGOMENTI where ARGOMENTI.COD_TOP = TOPIC.COD_TOP) as NARG, COD_TOP, DESCRIZIONE, TOPIC.TOPIC from TOPIC Come possiamo vedere abbiamo effettuano un select annidato che ci permette di contare quanti
argomenti sono prensenti in ogni topic e diamo a questo campo il nome NARG; selezioniamo anche il
codice dei vari topic che ci serviranno per visualizzare le altre parti del forum.
<a href="forum.asp?tab=arg&cod=<%=rec("COD_TOP")%>">
<%=rec("TOPIC")%></a> All'inizio della pagina forum.asp andrà inserito del codice che riceve queste stringhe e decide cosa mostrare; ecco un esempio:
<html>
<% Dim scelta,codice scelta = request.querystring("tab") codice = request.querystring("cod") if (scelta="") Then %> ...parte dei topic <% Else if (scelta="arg") Then %> ...parte degli argomenti <% Else if (scelta="mes") Then %> ...parte dei messaggi <% End if End if End if %> <html>
L'esempio mostra come è divisa la struttura di base del forum Continuiamo ora ad analizzare la parte dei
topic: con la prima istruzione SQL abbiamo creato un recorset che non contiene tutti i dati di cui abbiamo
bisogno; quelli che ancora ci mancano verranno ricavati all'interno del ciclo che stamperà i vari record
del recorset principale.
select top 1
(select count(*) from (MESSAGGI inner join ARGOMENTI on MESSAGGI.COD_ARG = ARGOMENTI.COD_ARG) where ARGOMENTI.COD_TOP ="&rec("COD_TOP")&") as NMES, MESSAGGI.AUTORE, MESSAGGI.DATA, ARGOMENTI.COD_ARG from ARGOMENTI inner join MESSAGGI on ARGOMENTI.COD_ARG=MESSAGGI.COD_ARG where ARGOMENTI.COD_TOP="&rec("COD_TOP") Con un select annidato contiamo il numero di argomenti associati al topic corrente (il codice
viene ricavato dal recorset principale su cui stiamo lavorando) e ricaviamo i dati dell'ultimo messaggio
inserito nel topic.
<a href="forum.asp?tab=mes&cod=<%=rec2("COD_ARG")%>">*</a>
Quando stampiamo i dati dell'ultimo messaggio inserito può essere utile controllare che il nuovo recordset non sia vuoto, se infatti non sono stati inseriti ancora messaggi verrà segnalato un errore nel momento in cui cercheremo di accedere ai valori del recordset.
|
|||||||||||||||||||||||||||||||