gaha! jag blir galen på detta jävla pws... får ju inte ens en chans att rätta till kodningen... error -> reboot... bleh!
okej, den står bara å tuggar när den här, något ostrukturerade koden, körs.
<!-- #include file="../../inc/dbcons2.asp" -->
<html>
<head>
<title>Futurefitness - Forum</title>
<link type="text/css" rel="stylesheet" href="../../inloggad.css">
</head>
<body bgcolor="#FFFFFF">
<table cellpadding="0" cellspacing="0">
<tr><td width="100%" align="left" valign="top">
<%
Dim fID, inID, rubrik, av, senaste_inlagg, antalsvar, rs2
SQL = "SELECT fID, ForumNamn FROM fnamn WHERE fID = "& Request("forumID")
Set rs = cn.Execute(SQL)
fID = rs("fID")
Response.Write "<b>"& rs("ForumNamn") &"</b><br><br>"
SQL = "SELECT * FROM finlagg WHERE iForum = "& fID &" AND svarTill = 0 ORDER BY iID DESC"
Set rs = cn.Execute(SQL)
If rs.EOF Then
Response.Write "I detta diskussionsforum finns ännu inga inlägg!<br>"
Else
Response.Write "Gå till botten av denna sida för att starta ett nytt ämne.<br><br>"
Response.Write "<table cellpadding=2 cellspacing=1><tr bgcolor=#99B38B><td width=210><b>Ämne:</b></td><td width=100><b>"
Response.Write "Startad av:</b></td><td width=45><b>Svar:</b></td><td width=140><b>Senaste inlägget:</b></td></tr>"
Do Until rs.EOF
inID = rs("iID")
rubrik = rs("rubrik")
av = rs("av")
senaste_inlagg = rs("datum")
Set rs2 = Server.Createobject("ADODB.Recordset")
SQL = "SELECT Count(*) AS AntalSvar FROM finlagg WHERE svarTill = "& inID
Set rs2 = cn.Execute(SQL)
antalsvar = rs2("AntalSvar")
rs2.Close
SQL = "SELECT * FROM finlagg WHERE iForum = "& fID &" AND svarTill = 0 ORDER BY iID DESC"
Set rs = cn.Execute(SQL)
Response.Write "<tr><td><a href=inlagg.asp?forum="& fID &"&inlagg="& inID &">"& rubrik &"</a></td><td>"& av &"</td>"
Response.Write "<td>"& antalsvar &"</td><td>"& senaste_inlagg &"</td></tr>"
rs.MoveNext
Loop
Response.Write "</table>"
End If
Response.Write "<br>"
%>
<hr size="1" noshade color="black">
<b>Skriv ett nytt inlägg:</b><br>
<form method="post" action="sparainlagg.asp">
<input type="hidden" name="iForum" value="<%= fID %>">
Ämne:<br>
<input type="text" maxlength="40" name="rubrik" <% If Session("browser") = "nn" Then %>class="inputNS" size="18"<% Else %>class="inputIE" size="30"<% End If %>><br>
<br>
Inlägg:<br>
<textarea wrap="VIRTUAL" name="inlagg" <% If Session("browser") = "nn" Then %>class="inputNS" rows="6" cols="18"<% Else %>class="inputIE" rows="7" cols="29"<% End If %>></textarea><br>
<br>
<input type="checkbox" name="anonym" value="anonym" onFocus="this.blur()"> Jag vill vara anonym<br>
<br>
<input type="submit" value="Skicka" <% If Session("browser") = "nn" Then %>class="inputNS"<% Else %>class="inputIE"<% End If %>><br>
</form>
</td></tr></table>
</body>
</html>
hm... jag tog bort Server.CreateObject men den vill fortfarande inte gå igång riktigt... (tugg, tugg)
Sen testade jag å lägga allt som har med rs2 att göra i en egen loop inne i den stor loopen (!?) (fråga inte varför, men de kändes rätt just då :))
å nu öppnas iallafall sidan... (yeah! :e) men de blir såklart error så vi släpper de.
menar du att jag ska ha allt under samma recordset @nders? eller ska jag fortfarande ha två olika?
samma fel... den listar senaste inlägget lika många gånger som de finns inlägg WHERE svarTill = 0
de e väl för att vi definierar variablerna som jag använder när jag printar allt på sidan INNAN loopen... de måste väl in i den på nå sätt? har testat lite, men får de inte å funka...
jag kan ju förklara lite runtom så länge.
har en kolumn i tabellen fInlagg som heter svarTill. Om det är ett svar till ett inlägg så kommer svarTill att innehålla ID:t till det inlägg de är svar på. Alltså kommer alla inlägg med svarTill = 0 att vara "rotinlägg" samt att alla där svarTill <> 0 är ett svar på ett av "rotinläggen".
If rs.EOF Then
Response.Write "I detta diskussionsforum finns ännu inga inlägg!<br>"
Else
Response.Write "Gå till botten av denna sida för att starta ett nytt ämne.<br><br>"
Response.Write "<table cellpadding=2 cellspacing=1><tr bgcolor=#99B38B><td width=210><b>Ämne:</b></td><td width=100><b>"
Response.Write "Startad av:</b></td><td width=45><b>Svar:</b></td><td width=140><b>Senaste inlägget:</b></td></tr>"
Do Until rs.EOF
inID = rs("iID")
rubrik = rs("rubrik")
av = rs("av")
senaste_inlagg = rs("datum")
SQL = "SELECT Count(*) AS AntalSvar FROM finlagg WHERE svarTill = "& inID
Set rs2 = cn.Execute(SQL)
antalsvar = rs2("AntalSvar")
SQL = "SELECT * FROM finlagg WHERE iForum = "& fID &" AND svarTill = 0 ORDER BY iID DESC"
Set rs2 = cn.Execute(SQL)
do until rs2.eof
Response.Write "<tr><td><a href=inlagg.asp?forum="& fID &"&inlagg="& inID &">"& rubrik &"</a></td><td>"& av &"</td>"
Response.Write "<td>"& antalsvar &"</td><td>"& senaste_inlagg &"</td></tr>"
rs2.movenext
rs.MoveNext
Loop
Response.Write "</table>"
End If
Response.Write "<br>"
%>
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>
okej.. jag har knåpat lite men fortfarande inte löst det..
koden för looparna är:
Do Until rs.EOF
[b]inID = rs("iID")[/b]
SQL = "SELECT Count(*) AS AntalSvar FROM finlagg WHERE svarTill = "& inID
Set rs2 = cn.Execute(SQL)
antalsvar = rs2("AntalSvar")
SQL = "SELECT * FROM finlagg WHERE iForum = "& fID &" AND svarTill = 0 ORDER BY iID DESC"
Set rs2 = cn.Execute(SQL)
Do Until rs2.EOF
inID = rs2("iID")
inID2 = rs2("iID")
rubrik = rs2("rubrik")
av = rs2("av")
senaste_inlagg = rs2("datum")
Response.Write "<tr><td><a href=inlagg.asp?forum="& fID &"&inlagg="& inID2 &">"& rubrik &"</a></td><td>"& av &"</td>"
Response.Write "<td>"& antalsvar &"</td><td>"& senaste_inlagg &"</td></tr>"
rs2.MoveNext
rs.MoveNext
Loop
Loop
okej, detta har jag kommit fram till. Jag har 3 "rotinlägg" i databasen, och ett svar. Om svaret är till det överst listade inlägget så får samtliga tre "rotinlägg" 1 som antal svar. Om svaret eller svaren ligger på de två andra inläggen så visas 0 som antal svar.
Detta resulterar i att raden som jag skrivit i fet stil i min kod inte loopas korrekt om jag fattat rätt.
för att förtydliga lite, om svaret är till inlägg 1:
ämne: | svar:
hej | 1
hej2 | 1
hej3 | 1
fast inlägg 2-3 inte har något svar.
har istället inlägg 2 eller 3 något svar ser de ut såhär:
ämne: | svar:
hej | 0
hej2 | 0
hej3 | 0