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

 


目次