우선, 나는 나를 도와 준 V37 Banzhu에게 감사하고 싶습니다. 이 솔루션은 "이전 기사 다음 기사"및 관련 기사를 표시하는 문제를 해결하고 모든 사람이 공유 할 수 있도록 게시합니다.
나는 "이전 기사와 다음 기사"를 판단하기 위해 ID+1과 ID-1을 사용한 게시물을 보았습니다. 사용 중에 문제가 발견되었습니다. 데이터베이스에서 기사를 삭제할 때 ID는 불연속적입니다. ID+1과 ID-1이 판단하는 데 사용되면 레코드가 찾을 수 없습니다. 이 프로그램에서 다음 기사의 ID는 현재 ID보다 큰 첫 번째 레코드를 쿼리하여 찾을 수 있으며, 첫 번째 레코드는 현재 ID보다 작으며 이전 기사의 ID를 찾습니다. 이런 식으로 ID가 연속적이지 않더라도 정상적으로 표시 될 수 있습니다.
관련 기사의 표시와 관련하여 데이터 테이블에 보드 필드를 추가하여 다른 기사 열을 구별하십시오. 새 기사를 추가 할 때마다 Boardid 번호를 추가하십시오. 기사를 표시 할 때 Boardid에 따라 데이터베이스를 쿼리하여 관련 기사를 표시하십시오.
데이터 테이블 기사의 필드에는 ID, Boardid, Title, Content, Author, AddTime이 포함됩니다.
코드 사본은 다음과 같습니다.
<!-프로그램 시작->
'다음 기사의 ID를 찾으려면'텍스트 함수를 정의하십시오. 현재 레코드가 이미 마지막 레코드 인 경우 출력 텍스트 "No"는
<%
functionthenext
newrs = server.createobject ( "adodb.recordset")
sql = "selecttop1*fromarticleswhereid>"& a1 & "OrderById"
setNewrs = conn.Execute (SQL)
ifnewrs.eofthen
response.write ( "Not")
또 다른
a2 = newrs ( "id")
response.write ( "<ahref = 'view.asp? id ="& a2 & "'> 다음 기사 </a>")
endif
최종 기능 장애
%>
'다음 기사의 ID를 찾기 위해 헤드 함수를 정의하십시오. 현재 레코드가 이미 첫 번째 레코드 인 경우 출력 텍스트 "No"는
<%
기능 헤드
headrs = server.createobject ( "adodb.recordset")
sql = "selecttop1*fromarticleswhowsid <"& a1 & "OrderByiddesc"
setheadrs = conn.execute (SQL)
ifheadrs.eofthen
response.write ( "Not")
또 다른
a0 = headrs ( "id")
response.write ( "<ahref = 'view.asp? id ="& a0 & "'> 이전 기사 </a>")
endif
최종 기능 장애
%>
'데이터베이스 연결 파일
<!-#includefile = "conn.asp"->
'통과 된 ID를 얻으려면 제목 작성자 및 기사의 내용을 표시하십시오.
<%
id = request ( "id")
sql = "select*fromarticleswhowsid ="& id
setrs = conn.execute (SQL)
%>
<%boardid = rs ( "boardid")%>
<title> 기사 시스템-<%= rs ( "title")%> </title> <bodyleftmargin = "0"topmargin = "0">
<!-#includefile = "top.asp"->
<%
dowhilenotrs.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">