0

ここにあるのは、別のソースに移動できるようにデータを引き出す必要がある非常にハックなクラシック 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>&nbsp;</td>
<%
End If

    Loop

Else 
Do While (intFiveCat <= 4 )
intFiveCat = intFiveCat + 1
%>
<td>&nbsp;</td>
<%
Loop
End If



If rstCategories.State = adStateOpen Then
rstCategories.Close
End If

Set rstCategories = Nothing
%>

この画像はこの作品の出力です: http://i.imgur.com/BAwSxWk.jpg空白を表示するものは、代わりに 1 つのカテゴリを表示する必要があるものであり、他のカテゴリは 2 番目のカテゴリを表示しており、先へ。

前もって感謝します。

4

1 に答える 1

0

スキップするrstCategoriesの最初の行を指定したようです

If intCountComma <> 0 Then 
    'ya-di-ya-di 
else 
    intCountComma = intCountComma + 1 
End If 
rstCategories.MoveNext 

(つまり、最初の行に対してya-di-ya-diは実行されません)

于 2013-03-13T11:18:39.960 に答える