2.7 記事内容の表示
■全ての記事内容の表示
リスト2.7 view3.asp
<%@ LANGUAGE="VBScript" %>
<% Option Explicit %>
<HTML>
<HEAD>
<TITLE>view3.asp</TITLE>
</HEAD>
<BODY>
<%
Const FOR_DEBUG = "<BR>Debug(view3.asp):"
Const DATASOURCE = "aspZADO"
Dim objConn,objRst,strSQL
'データベースへ接続します
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open DATASOURCE
'レコードを抽出します
strSQL = "SELECT * FROM tblBBS ORDER BY ID DESC;"
Set objRst = objConn.Execute(strSQL)
If NOT objRst.BOF Then
'記事がある
Do While NOT objRst.EOF
'1個の記事内容を表示します
%>
<TABLE BORDER=1>
<TR>
<TD>
[<%=objRst("messageNum")%>]
<%=objRst("title")%>
<B>[<%=objRst("name")%>]</B>
(<%=objRst("messageTime")%>)
</TD>
</TR>
<TR>
<TD>
<%=objRst("message")%>
</TD>
</TR>
</TABLE>
<%
objRst.MoveNext
Loop
Else
'記事がない
%>
投稿記事はありません<BR>
<%
End If
objRst.Close
objConn.Close
%>
</BODY>
</HTML>
図2.13
■一つの記事内容の表示
図2.13の上段のフレームで、標題がハイパーリンクになっています。ここをクリックすると、指定されたこの記事だけを下段のフレームに表示するようにします。ここの部分のスクリプトは次のようになっています。赤字の部分です。
[<%=objRst("messageNum")%>]
<A
HREF='view2.asp?ID=<%=objRst("ID")%>'
TARGET="VIEW"><%=objRst("title")%></A>
<B>[<%=objRst("name")%>]</B>
(<%=objRst("messageTime")%>)<BR>
ここでは、URLにデータを埋め込んでファイル間でデータの送受信を行っています。一般に次のような構文になります。
<A HREF="URL?変数1=値1&変数2=値2&・・・・・・&変数n=値n">
【注意】
文字列を意味する(")は(')でも構いません。
上の例の場合は、
<A HREF='view2.asp?ID=<%=objRst("ID")%>' TARGET="VIEW">
ですから、URLはview2.aspで、"?"以下がURLに埋め込まれたデータで、変数"ID"の値を送信します。変数"ID"の値は<%=objRst("ID")%>、つまり現在のレコードの中の"ID"フィールドの値に設定されています。
このハイパーリンクをクリックすると、view.aspファイルに移動し、レコードの"ID"フィールドの値が"ID"である記事内容を"VIEW"フィールドに表示するようにします。
リスト2.8
<%@ LANGUAGE="VBScript" %>
<% Option Explicit %>
<HTML>
<HEAD>
<TITLE>view2.asp</TITLE>
</HEAD>
<BODY>
<%
Const FOR_DEBUG = "<BR>Debug(view3.asp):"
Const DATASOURCE = "aspZADO"
Dim lngID
Dim objConn,objRst,strSQL
'URLに埋め込まれたデータを受信します
lngID = Request("ID")
Response.Write FOR_DEBUG & "ID=" & lngID & "<BR>"
'データベースへ接続します
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open DATASOURCE
'指定されたIDのレコードを検索します
strSQL = "SELECT * FROM tblBBS WHERE ID =" & lngID & ";"
Set objRst = objConn.Execute(strSQL)
If NOT objRst.BOF Then
'記事がある
%>
<TABLE BORDER=1>
<TR>
<TD>
[<%=objRst("messageNum")%>]
<%=objRst("title")%>
<B>[<%=objRst("name")%>]</B>
(<%=objRst("messageTime")%>)
</TD>
</TR>
<TR>
<TD>
<%=objRst("message")%>
</TD>
</TR>
</TABLE>
<%
Else
'記事がない
%>
投稿記事はありません<BR>
<%
End If
objRst.Close
objConn.Close
%>
</BODY>
</HTML>
図2.14