asp - asp.net - aspcode.it

COMMUNITY - Login
 Username:
 
 Password:
 
Voglio registrarmi!
Password dimenticata?
 Utenti on-line: 0
 Ospiti on-line: 13328
ASPCode.it - Store
<< lezione precedente lezione successiva >>

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.
Se volessimo vedere i topic non passeremo niente e richiameremo dal browser normalmente forum.asp, ecco come apparirà la nostra tabella principale:

Tabella Topic
Figura 3.1: La Tabella dei Topic.

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.
Nella tabella infatti il titolo del forum sarà un collegamento del tipo:

<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.
Precisamente costruiremo un nuovo recordset con il seguente select:

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.
Potremo così creare un link diretto all'ultimo messaggio inserito come nell'esempio:

<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.

<< lezione precedente lezione successiva >>


Utenti connessi: 13328