Wie Schleife für jedes Recordset in ASP
Ich brauche Hilfe mit der Schleife, ich bin versucht, zu erstellen Sie ein Menü mit einem Untermenü, In meiner Datenbank habe ich eine Tabelle mit dem Namen tblMenu die fünf Felder (link_position, link, link_name, link_title, sub_menu)
link_position Feld wird für die Sortierung der Menü-Punkt ' position,
link Feld speichert den link für Menü,
link_name hält den Namen für Menüpunkt,
link_title hält die link-Titel für Menü,
sub_menu speichert die Sub-Elemente (Dropdown) für das Menü.
Hier ist die Vorschau von tblMenu
Hier ist der Code für die Schleife
<ul>
<%
msql = "SELECT * FROM tblMenu ORDER BY [link_position] ASC"
Set RS = Server.CreateObject("ADODB.Recordset")
Set RSsub = Server.CreateObject("ADODB.Recordset")
RS.Open msql, Conn, 1,3
SET RSsub = Conn.execute ("SELECT * FROM tblMenu ORDER BY [link_position] ASC")
If Not RS.EOF Then
Do
Response.Write("<li><a href=""" & RS("link") & """ title =""" & RS("link_title") & """>" & RS("link_name") & "</a>" & vbcrlf)
If Not RSsub.EOF Then
Response.Write("<ul class=""sub-menu"">" & vbcrlf)
Do While Not RSsub.EOF
Response.Write(RSsub("sub_menu") & vbcrlf)
RSsub.MoveNext()
Loop
Response.Write "</ul>" & vbcrlf
End If
' RSsub.Close
Response.Write("</li>" & vbcrlf)
RS.MoveNext()
Loop Until RS.EOF
End If
%>
</ul>
Die Ausgabe
<ul>
<li><a href="/asp/" title ="Main Page">Home</a>
<ul class="sub-menu">
<li><a href="#">Inquiry</a></li>
<li><a href="#">Inquiry2</a></li>
<li><a href="#">ELS</a></li>
<li><a href="#">AP</a></li>
</ul>
</li>
<li><a href="/asp/page.asp?pID=1" title ="About us">About</a></li>
<li><a href="/asp/page.asp?pID=2" title ="E-Learning System">E-Learning</a></li>
<li><a href="/asp/page.asp?pID=5" title ="Academic Policies">Academic Policies</a></li>
<li><a href="/asp/page.asp?pID=6" title ="Facilities">Facilities</a></li>
<li><a href="/asp/events.asp" title ="Events Gallery">Events</a></li>
</ul>
Das Problem
Die Schleife für sub_menus wirft alle Datensätze unter den ersten Recordset von der Main-loop, der Ausgang im rechnen sollte das so sein
<ul>
<li><a href="/asp/" title ="Main Page">Home</a></li>
<li><a href="/asp/page.asp?pID=1" title ="About us">About</a>
<ul class="sub-menu">
<li><a href="#">Inquiry</a></li>
<li><a href="#">Inquiry2</a></li>
</ul>
</li>
<li><a href="/asp/page.asp?pID=2" title ="E-Learning System">E-Learning</a>
<ul class="sub-menu">
<li><a href="#">ELS</a></li>
</ul>
</li>
<li><a href="/asp/page.asp?pID=5" title ="Academic Policies">Academic Policies</a>
<ul class="sub-menu">
<li><a href="#">AP</a></li>
</ul>
</li>
<li><a href="/asp/page.asp?pID=6" title ="Facilities">Facilities</a></li>
<li><a href="/asp/events.asp" title ="Events Gallery">Events</a></li>
</ul>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin mir nicht sicher, warum führen Sie dieselbe Abfrage zwei mal. Es scheint, wie Sie haben alle Informationen, die Sie möchten aus der ersten SQL. Wenn ich deine Frage verstanden korrigieren dieser code ist sowohl einfacher und schneller.
Microsoft JET Database Engine (0x80040E14) Wrong number of arguments used with function in query expression 'IsNull(sub_menu,'')'.
isnull
unterscheidet sich von MSSQL. verwenden Sieiif
undisnull
zusammen : IIF(IsNull(sub_menu),",sub_menu) als sub_menu`