まず第一に、私を助けてくれたV37 Banzhuに感謝したいと思います。このソリューションは、「以前の記事次の記事」と関連記事を表示する問題を解決し、全員が共有できるように投稿します。
「前の記事と次の記事」を判断するためにID+1とID-1を使用した投稿を見ました。使用中に問題が発見されました。データベースで記事を削除すると、IDは不連続になります。 ID+1とID-1を使用して判断する場合、レコードは見つかりません。このプログラムでは、次の記事のIDは、現在のIDよりも大きい最初のレコードをクエリすることで見つかり、現在のIDよりも小さい最初のレコードは、前の記事のIDを見つけます。このようにして、IDが連続していなくても、正常に表示できます。
関連記事の表示については、データテーブルにBoardIDフィールドを追加して、さまざまな記事列を区別します。新しい記事を追加するたびにBoardID番号を追加します。記事を表示するときは、BoardIDに従ってデータベースを照会して、関連する記事を表示します。
データテーブル記事のフィールドには、ID、BoardID、タイトル、コンテンツ、著者、追加時間が含まれます
コードコピーは次のとおりです。
<! - プログラム開始 - >
'次の記事のIDを見つけるために、thenext関数を定義します。現在のレコードがすでに最後のレコードである場合、出力テキスト「いいえ」は
<%
functionthenext
newrs = server.createObject( "adodb.recordset")
sql = "SelectTop1*fromArticlesWhereId>"&a1& "orderbyid"
setNewrs = conn.execute(sql)
ifnewrs.eofthen
respons.write( "not")
それ以外
a2 = newrs( "id")
respons.write( "<ahref = 'view.asp?id ="&a2& "'>次の記事</a>")
endif
エンド機能
%>
'次の記事のIDを見つけるために、thehead関数を定義します。現在のレコードがすでに最初のレコードである場合、出力テキスト「いいえ」は
<%
functionthehead
headrs = server.createObject( "adodb.recordset")
sql = "selecttop1*fromarticleswhereid <"&a1& "orderbyiddesc"
setheadrs = conn.execute(sql)
ifheadrs.eofthen
respons.write( "not")
それ以外
a0 = headrs( "id")
respons.write( "<ahref = 'view.asp?id ="&a0& "'>前の記事</a>")
endif
エンド機能
%>
'データベース接続ファイル
<! - #includefile = "conn.asp" - >
「渡されたIDを取得して、記事のタイトル著者とコンテンツを表示します
<%
id = request( "id")
sql = "select*fromArticlesWhereId ="&id
setrs = conn.execute(sql)
%>
<%BoardID = rs( "BoardID")%>
<Title>記事システム - <%= rs( "title")%> </title> <bodyleftmargin = "0" topmargin = "0">
<! - #includefile = "top.asp" - >
<%
dowhileenotrs.eof
%>
<TableWidth = "773" border = "0" cellpacing = "0" cellpadding = "0" align = "center">
<tr>
<tdwidth = "576" align = "left">
<TableWidth = "557" border = "0" cellpacing = "5" cellpadding = "4" align = "left">