Jag håller på att göra ett forum. På försra sidan får man se de olika forumen uppraddade om innan varje forum finns ett + och om man trycker på de så ska ämnena i forumet radas upp under det, här kommer koden.
<html>
<head>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "lmdata.net-videomonitor"
sql = "SELECT * FROM Foruminfo"
Set RS = Conn.Execute (sql,,adCmdText)
If not request.querystring("vad")="" Then
sql2 = "SELECT * FROM Forum WHERE Forum LIKE '%" & request.querystring("vad") & "%'"
sql2 = sql2 & " ORDER BY Forum.DID, Forum.IID"
Set RS2 = Conn.Execute (sql2,,adCmdText)
End If
%>
<title>VMs Forum</title>
<link rel="stylesheet" href="../MAIN_CSS.CSS" type="text/css">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p class="rubrik">Välkomen till VM:s Forum<br>
</p>
<table width="100%" cellpadding="5" cellspacing="0">
<tr bgcolor="#990000">
<td width="30%"><b><font color="#FFFFFF">Forum</font></b></td>
<td width="45%"><b><font color="#FFFFFF">Beskrivning</font></b></td>
<td width="25%"><b><font color="#FFFFFF">Moderator</font></b></td>
</tr>
<%On Error Resume Next
RS.MoveFirst
Do While Not RS.EOF
%>
<tr bgcolor="#DDDDDD">
<td width="30%"><a href="default.asp?visa=alla&vad=<%=RS("Forum")%>">+</a> <a href="start.asp?forum=<%=RS("Forum")%>"><b><%=RS("Forum")%></b></a></td>
<td width="45%""><font size="1"><%=RS("info")%></font></td>
<td width="25%"><font size="1"><%=RS("mentor")%></font></td>
</tr>
<% If RS("forum")=RS2("forum") Then
On Error Resume Next
RS2.MoveFirst
[b]Do While Not RS2.EOF%>[/b]
<tr bgcolor="#DDDDDD">
<td width="30%"><a href="start.asp?forum=<%=RS("Forum")%>"><b><%=RS2("Amne")%></b></a></td>
<td width="45%""><font size="1"><%=RS2("Namn")%></font></td>
<td width="25%"><font size="1"><%=RS2("Datum")%></font></td>
</tr>
<%RS2.MoveNext
[b] Loop[/b]
End If%>
<%RS.MoveNext
If NOT RS.EOF Then%>
<tr bgcolor="#F0F0F0">
<td width="30%"><a href="default.asp?visa=alla&vad=<%=RS("Forum")%>">+</a> <a href="start.asp?forum=<%=RS("Forum")%>"><b><%=RS("Forum")%></b></a></td>
<td width="45%"><font size="1"><%=RS("info")%></font></td>
<td width="25%"><font size="1"><%=RS("mentor")%></font></td>
</tr>
<% If RS("forum")=RS2("forum") Then
On Error Resume Next
RS2.MoveFirst
[b]Do While Not RS2.EOF%>[/b]
<tr bgcolor="#F0F0F0">
<td width="30%"><a href="start.asp?forum=<%=RS("Forum")%>"><b><%=RS2("Amne")%></b></a></td>
<td width="45%""><font size="1"><%=RS2("Namn")%></font></td>
<td width="25%"><font size="1"><%=RS2("Datum")%></font></td>
</tr>
<%RS2.MoveNext
[b]Loop[/b]
End If%>
<%End If
RS.MoveNext
LOOP%>
</table>
</body>
</html>
Tycker jag ser bra ut, men (nu till det sjuka proplemet) när man försöker köra filen så hänger sig nästan systemet, det tuggar och tuggar i typ 5 min sedan kommer felmedelandet server timed out.
Jag vet att det har något att gör med RS2.EOF för om man ta bort den så fungerar det.
Finns det några tips?
Jag hade ett liknande problem för ett år sedan, har jag för mig. Gör såhär att du ger RS("forum") till en variabel (dim variabel:variabel = RS("forum"))och sedan byter ut
"If RS("forum")=RS2("forum") Then" till
"If RS2("forum")=variabeln Then"
Det är alltid en bra idé att ge sådana här värden till en variabel om du skall använda dem fler än en gång. Speciellt när du använder databaser. Samma sak med forms, istället för att göra 100st request.form("fält") så är det snabbare(och därför bättre) att ge det till en vairabel så asp slipper söka igenom objektet efter värdet. Tänk på det som att det är lättare att plocka upp en en sak om den ligger ensam i en låda istället för att behöva leta igenom en som har 20st andra saker liggandes ovanpå (det lät väl pedagogiskt och bra? :e).
Om det spelar någon roll, här är felmedelandet so kommer så småningom:
Active Server Pages fel 'ASP 0113'
Skriptet avbröts
/iisHelp/common/500-100.asp
Den maximala tiden att köra ett skript överskreds. Du kan ändra den här gränsen genom att ange ett nytt värde för Server.ScriptTimeout eller genom att ändra värdet i IIS-administrationsverktyget.
RS.MoveFirst
Do While Not RS.EOF
%>
<tr bgcolor="#DDDDDD">
<td width="30%"><a href="default.asp?visa=alla&vad=<%=RS("Forum")%>">+</a> <a href="start.asp?forum=<%=RS("Forum")%>"><b><%=RS("Forum")%></b></a></td>
<td width="45%""><font size="1"><%=RS("info")%></font></td>
<td width="25%"><font size="1"><%=RS("mentor")%></font></td>
</tr>
<% If RS("forum")=RS2("forum") Then
On Error Resume Next
RS2.MoveFirst
Do While Not RS2.EOF%>
<tr bgcolor="#DDDDDD">
<td width="30%"><a href="start.asp?forum=<%=RS("Forum")%>"><b><%=RS2("Amne")%></b></a></td>
<td width="45%""><font size="1"><%=RS2("Namn")%></font></td>
<td width="25%"><font size="1"><%=RS2("Datum")%></font></td>
</tr>
<%RS2.MoveNext
Loop
End If%>
<%RS.MoveNext
If NOT RS.EOF Then%>
<tr bgcolor="#F0F0F0">
<td width="30%"><a href="default.asp?visa=alla&vad=<%=RS("Forum")%>">+</a> <a href="start.asp?forum=<%=RS("Forum")%>"><b><%=RS("Forum")%></b></a></td>
<td width="45%"><font size="1"><%=RS("info")%></font></td>
<td width="25%"><font size="1"><%=RS("mentor")%></font></td>
</tr>
<% If RS("forum")=RS2("forum") Then
On Error Resume Next
RS2.MoveFirst
Do While Not RS2.EOF%>
<tr bgcolor="#F0F0F0">
<td width="30%"><a href="start.asp?forum=<%=RS("Forum")%>"><b><%=RS2("Amne")%></b></a></td>
<td width="45%""><font size="1"><%=RS2("Namn")%></font></td>
<td width="25%"><font size="1"><%=RS2("Datum")%></font></td>
</tr>
<%RS2.MoveNext
Loop
End If%>
vid en första anblick ser det himla konstigt ut, och det strular bara till det att ha hela den här hävnen med kod, plus att det är svårare att felsöka.
enda skillnaden jag ser på dessa är bgcolor i <tr>, och jag vill gärna att du förklarar lite vad du tänkt göra med dessa två avsnitt?
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>
Dels för att ajg vill byta färg vi varannan cell, och sedan är ddet ju när man trycker på "+" så sak ju det ämnena komma upp.
Det fungerar om man byter ut RS2.EOF loppen mot tex. en n<5 loop men så kan jag ju itne ha det eftersom jag ver ju inte hur många celler som finns.