ここにあるのは、別のソースに移動できるようにデータを引き出す必要がある非常にハックなクラシック ASP (VBscript) スクリプトの一部です。引き出している作品の最初のレコードをスキップしているように見えるという点で問題があります。値が 1 つしかないレコードに到達するまでは問題ないように見えますが、その後は空のふりをして先に進みます。複数のレコードが関連付けられている場合は、それらをレンダリングし、最初のレコードをスキップして次に進みます。
このスクリプトは、リストに関連付けられたカテゴリを表示します。(その部分は表示されていません)
<%
If intCategoryID = "" Then
intCategoryID = request("ID")
End If
'Response.Write("Bus ID for Category: " & intCategoryID)
set rstCategories = nothing
intCountComma = 0
intFiveCat = 0
Set rstCategories = Server.CreateObject( "ADODB.Recordset" )
If blnFr = 1 Then
strSQL = "SELECT ID, Case Name_Displayed_L2 When '' Then Name_Displayed Else Name_Displayed_L2 End As Name_Displayed, Attraction_Sub_Types.FriendlyURL"
Else
strSQL = "SELECT ID, Name_Displayed, Attraction_Sub_Types.FriendlyURL"
End If
strSQL = strSQL & " From Attraction_Sub_Types Inner Join Attractions_Attraction_Sub_Types_Link ON Attractions_Attraction_Sub_Types_Link.Sub_TypeID = Attraction_Sub_Types.ID"
strSQL = strSQL & " Where Attractions_Attraction_Sub_Types_Link.AttractionID = '" & intCategoryID & "'"
set rstCategories = Conn.execute(strSQL)
If Not rstCategories.BOF And Not rstCategories.EOF Then
rstCategories.MoveFirst
'Do While (Not rstCategories.EOF AND intFiveCat <= 5 )
Do While (intFiveCat <= 5 )
intFiveCat = intFiveCat + 1
If Not rstCategories.EOF Then
If intCountComma <> 0 Then
strNameDisplayed = rstCategories("Name_Displayed")
strSQL2 = "SELECT ID, Name_Displayed, Attraction_Types.FriendlyURL"
strSQL2 = strSQL2 & " From Attraction_Types Inner Join Attraction_Types_Sub_Types_Link ON Attraction_Types_Sub_Types_Link.TypeID = Attraction_Types.ID"
strSQL2 = strSQL2 & " Where Attraction_Types_Sub_Types_Link.Sub_TypeID = '" & rstCategories("ID") & "'"
set rstMaincats = Conn.execute(strSQL2)
If Not rstMaincats.EOF Then
strMainName = rstMaincats("Name_Displayed")
Else
strMainName = "unsorted"
End If
Response.Write("<td>")
%>
<%=strMainName%>-><%=strNameDisplayed%>
<% Response.Write("</td>")
Else
intCountComma = intCountComma + 1
End If
rstCategories.MoveNext
'Do While ( intFiveCat <= 5 )
'Response.Write("<td>")
'Response.Write("</td>")
'intFiveCat = intFiveCat + 1
'Loop
Else
%>
<td> </td>
<%
End If
Loop
Else
Do While (intFiveCat <= 4 )
intFiveCat = intFiveCat + 1
%>
<td> </td>
<%
Loop
End If
If rstCategories.State = adStateOpen Then
rstCategories.Close
End If
Set rstCategories = Nothing
%>
この画像はこの作品の出力です: http://i.imgur.com/BAwSxWk.jpg空白を表示するものは、代わりに 1 つのカテゴリを表示する必要があるものであり、他のカテゴリは 2 番目のカテゴリを表示しており、先へ。
前もって感謝します。