webForumDet fria alternativet

Sortera?

7 svar · 288 visningar · startad av k0ffe

k0ffeMedlem sedan maj 2003389 inlägg
#1

Hur skriver jag för att sortera posterna efter datumet i den här satsen?

 SQL = "SELECT * FROM debatt_svar WHERE SID = " & Request.QueryString("DID")
Set RS2 = Connection.Execute(SQL)
@ndersMedlem sedan juni 200026 914 inlägg
#2
SQL = "SELECT * FROM debatt_svar WHERE SID = " & Request.QueryString("DID") & " ORDER BY datum"

Tipsar lite om SQL-forumet.

LarsGMedlem sedan dec. 200012 465 inlägg
#3

Flyttas från ASP

k0ffeMedlem sedan maj 2003389 inlägg
#4

Nu ett nytt problem:
På förstasidan där alla debatt-rubriker visas, vill jag sortera dessa efter debatten med nyast svar.

<% 
Set RecSet = Server.CreateObject("ADODB.Recordset")
Set objRSAnswer = Server.CreateObject("ADODB.Recordset")

SQL = "SELECT (select count(*) from debatt) As AntalDebatt, *, Format$([datum],'yyyy/mm/dd') AS formdatum FROM debatt order by datum desc"
RecSet.Open SQL, Connection, adOpenStatic, adLockOptimistic

response.write "<b>" & recset("AntalDebatt") & "</b>"
 %> debatter
 
 Rubrik: 
 Datum: 
 Antal svar:
<% while not recset.eof %>

<% response.write (" &raquo; " & "<a href=""visa_debatt.asp?DID=" & recset("DID") & """>" & Recset("rubrik") & "</a>" ) %>
                        
  <%=RecSet("forfattare")%>
<%= FormatDateTime(recset("datum"),2) %>

<%
strSQL = "SELECT Count(*) FROM debatt_svar WHERE SID = " & RecSet("DID")
  objRSAnswer.Open strSQL, Connection, adOpenStatic, adLockOptimistic

  

  If objRSAnswer.EOF Then
    Response.Write "0 "
  Else
    Response.Write objRSAnswer(0) & " "
  End If

  objRSAnswer.Close 
%>
          
<%
  RecSet.MoveNext
Wend

RecSet.Close
Set RecSet = Nothing
Set objRSAnswer = Nothing

%>

Precis som här på WF :)

LarsGMedlem sedan dec. 200012 465 inlägg
#5
<% 

SQL = "SELECT (select count(*) from debatt) As AntalDebatt, did,rubrik,forfattare, " & _
" Format$([datum],'yyyy/mm/dd') AS formdatum , (select count(*) from debattSvar " & _
" where SID = C.DID ) , (select max(svarsDatum) from debattSvar " & _
" where SID = C.DID ) FROM debatt c order by 7 desc"
set recset = connection.execute(sql)
if not recset.eof then
response.write "<b>" & recset("AntalDebatt") & "</b>"
 %> debatter
 
 Rubrik: 
 Datum: 
 Antal svar:
<% 
while not recset.eof
    response.write " » " & "<a href=""visa_debatt.asp?DID=" & recset("DID") & """>" & Recset("rubrik") & "</a>" 
    response.write RecSet("forfattare")
    response.write Recset("formdatum") 
    response.write Recset(5) & " " 
    RecSet.MoveNext
Wend
end if
RecSet.Close
Set RecSet = Nothing

%>

Lägg aldrig en select inuti i en loop på det sättet. Det är ett säkert sätt att få dålig prestanda. Hämta bara de kolumner du skall visa, dvs använd aldrig select *. Det finns ingen anledning att skapa recordset explicit.

k0ffeMedlem sedan maj 2003389 inlägg
#6

Hmm... det blir ingen skillnad?
Det är fortfarande den senast skrivna debatten som hamnar överst. Inte den som har det senast skrivna svaret.

LarsGMedlem sedan dec. 200012 465 inlägg
#7

Då är det fel i Access.

SQL = "SELECT antalDebatt, did,rubrik,forfattare, " & _
"formdatum, antalSvar, senastSvar " & _
" from  (select count(*) from debatt) As AntalDebatt, " & _
" Format$([datum],'yyyy/mm/dd') AS formdatum , " &_
" did,rubrik,forfattare, " & _
" (select count(*) from debattSvar " & _
" where SID = C.DID )  as antalSvar , " & _
" (select max(svarsDatum) from debattSvar " & _
" where SID = C.DID ) as senastSvar FROM debatt c ) dt" & _
" order by senastSvar desc"
k0ffeMedlem sedan maj 2003389 inlägg
#8

Jag blir galen!

<% 
Set RecSet = Server.CreateObject("ADODB.Recordset")
Set objRSAnswer = Server.CreateObject("ADODB.Recordset")

SQL = "SELECT antalDebatt, did,rubrik,forfattare, " & _
"formdatum, antalSvar, senastSvar " & _
" from  (select count(*) from debatt) As AntalDebatt, " & _
" Format$([datum],'yyyy/mm/dd') AS formdatum , " &_
" did,rubrik,forfattare, " & _
" (select count(*) from debatt_svar " & _
" where SID = C.DID )  as antalSvar , " & _
" (select max(Datum) from debatt_svar " & _
" where SID = C.DID ) as senastSvar FROM debatt c ) dt" & _
" order by senastSvar desc"

RecSet.Open SQL, Connection, adOpenStatic, adLockOptimistic

response.write "<b>" & recset("AntalDebatt") & "</b>"
 %>debatter

Rubrik: 
Skribent:
Datum:
Antal svar:

  <%
while not recset.eof 

response.write (" &raquo; " & "<a href=""visa_debatt.asp?DID=" & recset("DID") & """>" & Recset("rubrik") & "</a>" ) %>
               
<%=RecSet("forfattare")%>

<%= FormatDateTime(recset("datum"),2) %>
                        <%
					  strSQL = "SELECT Count(*) FROM debatt_svar WHERE SID = " & RecSet("DID")
  objRSAnswer.Open strSQL, Connection, adOpenStatic, adLockOptimistic

  

  If objRSAnswer.EOF Then
    Response.Write "0 "
  Else
    Response.Write objRSAnswer(0) & " "
  End If

  objRSAnswer.Close 
%>

<%
  RecSet.MoveNext
Wend

RecSet.Close
Set RecSet = Nothing
Set objRSAnswer = Nothing

%>
Genererad på 377 ms · cache AV · v20260730165559-full.f96bc7eb