webForumDet fria alternativet

Sorteringsordning i forum

ASP

2 svar · 150 visningar · startad av laidback

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

Har på min sajt ett forum, som från grunden byggde på ett jag laddade ner från Webeye.

Har använt det och modifierat det lite grann, men har kört fast på ett par grundläggande punkter.

Som standard sorteras trådarna så den äldsta hamnar överst, och den med senaste inläggen underst. När man börjar få en ohygglig massa trådar blir det besvärligt, eftersom jag dessutom inte lyckats få någon bra paging att fungera.

Någon som orkar cruncha igenom koden och kanske komma med konstruktiva idéer om
a. omvänd sorteringsordning
b. fungerande paging

klipper från sidan forum.asp

<tr><td  colspan="5" class="ruta" align=left style="padding: 2px">
<%
Session.LCID = 1053

SQL = "select * from k_forum where id="&Request.Querystring("id") 
Set RecSet = Databas.Execute(SQL)

inget = ""

SQL = "select * from k_inlagg where forum_id="&Request.Querystring("id")
SQL = SQL & " AND svar_id = 0 ORDER BY svar_id asc"
Set RecSet2 = Databas.Execute(SQL)

%>

<span class="rubrik"><%=RecSet("namn")%></span>
<br><%=RecSet("beskrivning")%>
<p>

 <tr>
    <td colspan="5" class="ruta" align=left style="padding: 2px">
			<a href=forum_start.asp>Alla forum</a> | <%=RecSet("namn")%> | <a href=forum_nytt_inlagg.asp?forum_id=<%=Request.Querystring("id")%>>Ny tråd</a>
		</td>
  </tr>
  <tr>
  	 <td class="ruta" align=left style="padding: 2px" ></td>
    <td class="ruta"  style="padding: 2px"><b>Ämne</b></td>
    <td class="ruta" style="padding: 2px"><b>Startat av</b></td>
    <td class="ruta" style="padding: 2px"><b>Svar</b></td>
    <td class="ruta" align=right style="padding: 2px" width=150><b>Senaste inlägg</b></td>
  </tr>
<%
Do While NOT RecSet2.EOF

	SQL = "select * from k_inlagg where forum_id="&Request.Querystring("id") 
	Set RecSet_inlagg = Databas.Execute(SQL)

	SQL = "select count(*) AS count_svar from k_inlagg where svar_id="&RecSet2("id")
	Set RecSet_count_svar = Databas.Execute(SQL)

	SQL = "select count(*) AS datum_check from k_inlagg where svar_id="&RecSet2("id")
	Set RecSet_datum_check = Databas.Execute(SQL)

	If RecSet_datum_check("datum_check") <> 0 then

		SQL = "select datum from k_inlagg where svar_id="&RecSet2("id")
		SQL = SQL & " order by datum desc"
		Set RecSet_datum = Databas.Execute(SQL)

	Else
	
		SQL = "select datum from k_inlagg where id="&RecSet2("id")
		SQL = SQL & " order by datum desc"
		Set RecSet_datum = Databas.Execute(SQL)
	
	End If		
	
	cnt = cnt + 1
strColor = "#F2F8FF" 
If cnt Mod 2 = 0 then strColor = "#E3EEFB"
	
	
	If Cint(Request.Querystring("str_id")) = Cint(RecSet2("id")) then
		SQL = "select * from k_inlagg where svar_id="&RecSet2("id")
		Set RecSet_svar = Databas.Execute(SQL)
		%>
		  <tr bgcolor=<%=strColor%>>
		    <td width=1><a href=forum.asp?id=<%=Request.Querystring("id")%>&str_id=0>-</a></td>
		    <td><a href=forum_inlagg.asp?forum_id=<%=Request.Querystring("id")%>&inlagg_id=<%=RecSet2("id")%>><%=RecSet2("amne")%></td>
   			 <td><%=RecSet2("skribent")%></td>
		    <td><%=RecSet_count_svar("count_svar")%></td>
		    
		    
		    <td><% d = RecSet2("datum") %><%=Right("0" & Day(d),2)%>&nbsp;<% =LCase(Monthname(Month(d), True))%>&nbsp;<% =Year(d)%> - <%=Right("0" & Hour(d),2)%>:<%=Right("0" & Minute(d),2)%></td>
		  </tr>
			<%
			Do Until RecSet_svar.EOF
			SQL = "select * from k_inlagg where id = " & RecSet_svar("id")
			Set RecSet_svar2 = Databas.Execute(SQL)
			%>
		  <tr bgcolor=<%=strColor%>>
		  	 <td width=1></td>
		    <td>&nbsp;&nbsp;&nbsp;&nbsp;<a href=forum_inlagg.asp?forum_id=<%=Request.Querystring("id")%>&inlagg_id=<%=RecSet2("id")%>#<%=RecSet_svar("id")%>><%=RecSet_svar("amne")%></td>
		    <td colspan=2><%=RecSet_svar("skribent")%></td>
		    <td><% d = RecSet2("datum") %><%=Right("0" & Day(d),2)%>&nbsp;<% =LCase(Monthname(Month(d), True))%>&nbsp;<% =Year(d)%> - <%=Right("0" & Hour(d),2)%>:<%=Right("0" & Minute(d),2)%></td>
		  </tr>
			<%
			RecSet_svar.MoveNext
			Loop
	Else
		%>
		<tr bgcolor=<%=strColor%>>
		  	<td width=1>
  			<% If RecSet_count_svar("count_svar") <> 0 then %>
  				<a href=forum.asp?id=<%=Request.Querystring("id")%>&str_id=<%=RecSet2("id")%>>+</a>
  			<% End If %>
  			</td>
   			<td><a href=forum_inlagg.asp?forum_id=<%=Request.Querystring("id")%>&inlagg_id=<%=RecSet2("id")%>><%=RecSet2("amne")%></td>
   			<td><%=RecSet2("skribent")%></td>
    		<td><%=RecSet_count_svar("count_svar")%></td>
    		<td><% d = RecSet_datum("datum") %><%=Right("0" & Day(d),2)%>&nbsp;<% =LCase(Monthname(Month(d), True))%>&nbsp;<% =Year(d)%> - <%=Right("0" & Hour(d),2)%>:<%=Right("0" & Minute(d),2)%></td>
  		</tr>
		<%
	End If
Set RecSet_count_svar = nothing
Set RecSet_datum_check = nothing
Set RecSet_datum = Nothing
Set RecSet_inlagg = Nothing
RecSet2.MoveNext
Loop
Set RecSet2 = nothing

%>
Medlem sedan juli 200322 inlägg
#2

Angående sorteringordning, testa att ändra asc till desc alltså:
SQL = SQL & " AND svar_id = 0 ORDER BY svar_id DESC"

Medlem sedan maj 2001797 inlägg
#3

Glömde nämna det, har testat att göra som du säger tidigare men det gör ingen skillnad. Tyvärr :/

256 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)