webForumDet fria alternativet

Får inte Nestade loopar att funka!

ASP

3 svar · 208 visningar · startad av Zaphod

Medlem sedan maj 2000107 inlägg
Frågan#1

Hejsan, jag är ny här så jag inleder väl min framtida visit med en fråga:

Jag får inte nestade loopar att funka när jag ska ta ut info från databaser.

Koden är till ett forum (som jag gör i studie syfte) ser ungefär ut såhär:

<%
dim cn,rs1,rs2,SQL1,SQL2

set cn = server.createobject("ADODB.Connection")
cn.open "databas"
SQL1 = "SELCET ID,Topic,user WHERE MsgLevel = 1"
set rs = cn.execute(SQL1)
do while not rs1.eof%>
<%=rs1("topic")%> - <%=rs1("user")%><br>
<%
SQL2 = "SELECT MsgLevel,Topic,user WHERE MsgRef = "&rs("id")&" AND MsgLevel <> 1"
set rs2 = cn.execute(SQL2)
do while not rs2.eof
dim tmp, i
tmp = "&nbsp;"
for i = 1 to rs("MsgLevel")
tmp = tmp & "&nbsp;"
next
%>
<%=tmp%><%=rs("topic")%> - <%rs("user")%>
<%loop
set rs2 = nothing
SLQ2 = ""
loop
%>

Detta exemplet skrev jag nu, eftersom jag har en annan lösning på mitt script just nu "on the fly". Så koden kanske har några småfel här och där. Plus att den inte är fullständig (man kan inte se på postsen osv. Men ni förstår vad jag menar.

Detta skulle göra (ifall det funkade riktigt) så att man först fick ett ämne och sedan svaren. MsgRef är ett nummer som refererar till vilken post det är reply till. Och MsgLevel är ett nummer som refererar till hur långt till vänster reply:n ska stå. Så man får en träd funktion.

Saken är bara det att scriptet visar bara en reply per nytt ämne. Och jag kan inte för mitt liv förstå varför!
Jag har testat med att köra "exakt" samma nestade loop fast utan databas inblandning. Då funkar det hur bra som helst.

Någon som har en lösning?

Kollade i något sådant där gratis forum, men koden var så dåligt skriven så jag orkade inte engagera mig.

*Pehw* :)
Tacksam för svar eller ifall någon annan har någon annan lösning. Jag använder SQL databaser till denna.

/Magnus

Medlem sedan maj 2000107 inlägg
#2

Det ska vara tmp=" " där det står: tmp=" ".
Glömde att göra   "kodvänligt" :)

/Magnus

Medlem sedan dec. 19998 577 inlägg
#3

Hejsan, och välkommen hit! :)

På den här raden:

SQL2 = "SELECT MsgLevel,Topic,user WHERE MsgRef = "&rs("id")&" AND MsgLevel <> 1"

... testa att plocka ut rs("id") till en variabel före SQL-satsen, för detta brukar ställa till problem för mig...

------------------
        )|(
       (o o)
-oo0-(_)-0oo-----
webeye.nu *hem*
vide@4sale.se

Medlem sedan maj 2000107 inlägg
#4

Tack så jätte mycket!
Nu funkade det!
Att det var så jäkla enkelt.
Störande. Jaja, man lär sig något nytt varje dag.

Tack för att du svarade så snabbt också!

/Magnus

------------------
/Magnus aka Zaphod
www.designmodule.com.bi

269 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)