webForumDet fria alternativet

Senaste svar i en tråd

ASP

10 svar · 346 visningar · startad av magnusfernstrom

Medlem sedan mars 20033 686 inlägg
Frågan#1

Nu har jag denna kod för att kolla vem som svarat senast i en tråd:

SQL = "SELECT TOP 1 * FROM tblForum WHERE frmID = " & rs("frmID") & " AND frmSvar = " & rs("frmSvar") & " ORDER BY frmID"

Självklart fungerar inte detta.

Lösning?

Medlem sedan dec. 200012 464 inlägg
#2
SQL = "SELECT TOP 1 * FROM tblForum WHERE frmID = " & rs("frmID") & " AND frmSvar = " & rs("frmSvar") & " ORDER BY frmID desc"

Självklart fungerar inte detta.

Det är inte alls självklart. Försök att alltid ge en noggrann beskrivning på vad som inte fungerar.

Medlem sedan juni 20034 013 inlägg
#3

frmID = forumID?

Du borde sortera efter det id som du ger till inläggen, och så sortera DESC (fallande) som LarsG skriver.

Medlem sedan mars 20033 686 inlägg
#4

Okej, sorry.

Grejen är det att den skriver ut trådskaparens namn istället.

och frmID är helt enkelt ett ID för varje inlägg/tråd.

Medlem sedan mars 20033 686 inlägg
#5

Jag klarade det själv, tror jag:

           <%
              SQL = "SELECT TOP 1 * FROM tblForum WHERE frmSvar = " & rs("frmID") & " ORDER BY frmID DESC"
              Set rs1 = Conn.Execute(SQL)
              
              Do until rs1.EOF
           %>

           <%=rs1("frmAvsandare")%>

           <%
              rs1.MoveNext
              Loop

              rs1.Close
              Set rs1 = nothing
           %>

Tack för hjälpen LarsG och tydal!

Medlem sedan mars 20033 686 inlägg
#6

Ja! Så länge var det svaret accepterat :e (även om det var mitt eget)

Okej. Allt fungerar egentligen. Men, om jag vill kolla om en tråd inte har några svar och sedan skriva ut "Inga svar", hur gör jag då?

Jag har denna kod:

         <%
              SQL = "SELECT TOP 1 * FROM tblForum WHERE frmSvar = " & rs("frmID") & " ORDER BY frmID DESC"
              Set rs1 = Conn.Execute(SQL)
              
              Do until rs1.EOF
              
              If rs1.EOF Then
           %>
           Inga svar
           <%
           Else
           %>
           <a href="user.asp?user_id=<%=rs("frmAvsandareID")%>" class="forum"><%=rs1("frmAvsandare")%></a>

           <%
           End If

              rs1.MoveNext
              Loop

              rs1.Close
              Set rs1 = nothing
           %>

Den skriver då inte ut nåt om en tråd inte har några svar.

Medlem sedan mars 20033 686 inlägg
#7

Ingen? :(

Medlem sedan juli 20015 107 inlägg
#8
<%
	SQL = "SELECT TOP 1 * FROM tblForum WHERE frmSvar = " & rs("frmID") & " ORDER BY frmID DESC"
	Set rs1 = Conn.Execute(SQL)

	If rs1.EOF Then

		response.write "Inga svar"

	Else

		Do until rs1.EOF

		response.write "<a href=""user.asp?user_id=" & rs("frmAvsandareID") & "class=""forum"">" & rs1("frmAvsandare") & "</a><br>"

		rs1.MoveNext
		Loop
	end if

	rs1.Close
	Set rs1 = nothing
	Conn.close
	Set Conn = nothing
%>

Något sådant du vill ha?

edit://
Föresten, varför köra en Loop osv, när du endå bara selectar 1 post? Antingen är SQL frågan fel, eller så dissar du följande raderna i koden

Do until RS1.eof
RS1.movenext
loop

Medlem sedan mars 20033 686 inlägg
#9

Mjo. Men alltså, jag har det i en speciell tabell. Det jag vill är att helt enkelt skriva ut Recordsetet men kolla om det först innehåller något. Eller vad man skall säga. Jag skall ju loopa igenom för att kolla om det finns några poster som är svar till den tråden.

Medlem sedan juli 20015 107 inlägg
#10

magnusfernstrom skrev:

Mjo. Men alltså, jag har det i en speciell tabell. Det jag vill är att helt enkelt skriva ut Recordsetet men kolla om det först innehåller något. Eller vad man skall säga. Jag skall ju loopa igenom för att kolla om det finns några poster som är svar till den tråden.

du behöver inte loopa för det juhe? Samma funktion uppnås juhe med denna kod

<%
	SQL = "SELECT TOP 1 * FROM tblForum WHERE frmSvar = " & rs("frmID") & " ORDER BY frmID DESC"
	Set rs1 = Conn.Execute(SQL)

	If rs1.EOF Then

		response.write "Inga svar"

	Else

		response.write "<a href=""user.asp?user_id=" & rs("frmAvsandareID") & "class=""forum"">" & rs1("frmAvsandare") & "</a><br>"

	end if

	rs1.Close
	Set rs1 = nothing
	Conn.close
	Set Conn = nothing
%>

Antingen hittas en post eller inte. Du har endå begränsat i SQL frågan till "Select TOP 1" vilket resulterar att det är onödigt att loopa, efterdom det enda bara skrivs ut ett svar även om det skulle finnas 50 svar

Medlem sedan mars 20033 686 inlägg
#11

Tack tydal, LarsG pch M.Cheraghi :bire

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