webForumDet fria alternativet

Sortera efter antal

5 svar · 276 visningar · startad av Asa

AsaMedlem sedan dec. 20011 860 inlägg
#1

Har denna kod:

<table cellspacing=0 cellpadding=8 border=0 width="100%">
  <tr>
    <td valign="top" background="bilder/long-bg.gif" height="30" colspan="2"><b>Flest GB-inlägg i din GB:</b></td>
  </tr>
  <tr>
    <td valign="top">
  <%Set Flest=Conn.Execute("Select Distinct from_id From gastbok Where to_Id=" & Request.QueryString("id"))
  y=1
  x=0
  Do Until Flest.EOF Or x=8

  Set User=Conn.Execute("Select * From users Where userid=" & Flest("from_Id"))
  Set Antal = Conn.Execute("select count(from_id) as antal from gastbok where from_Id=" & User("userId") & " And to_Id=" & Request.QueryString("id"))%>
    <b><%=y%>.</b> <%=User("alias")%> (<%=Antal("antal")%>)<br>
  <%x=x+1
  y=y+1
  Flest.MoveNext
  Loop%>
    </td>
  </tr>
</table>

Jag vill nu sortera efter den som har mest postade inlägg så den kommer högst upp. Jag använder MySQL databas.

Och vad är fel med denna?

If Cint(Session("userid")) = Cint(Request.QueryString("id")) Then
   Conn.Execute("Update gastbok Set read=1 Where to_Id=" & Request.QueryString("id"))  
End If

Felmess:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E09)
[TCX][MyODBC]You have an error in your SQL syntax near 'read=1 Where to_Id=1' at line 1

LarsGMedlem sedan dec. 200012 464 inlägg
#2
 Set Antal = Conn.Execute("select count(from_id) as antal from gastbok where from_Id=" & User("userId") & " And to_Id=" & Request.QueryString("id") order by antal desc)%>

read är ett reserverat ord i SQL så det är bäst att byta namn på den kolumnen.

AsaMedlem sedan dec. 20011 860 inlägg
#3

Det går ju inte med det du skrev! Jag måste ju sortera vid denna eller?

Set Flest=Conn.Execute("Select .......

Det med namnbyte gjorde susen på andra problemet.

AsaMedlem sedan dec. 20011 860 inlägg
#4

Men den koden ligger ju i loopen där man bara räknar ihop allt å skriver ut namnen. SKa inte själva order grejjen ligga där man hämtar med denna kod?

Set Flest=Conn.Execute("Select Distinct from_id From gastbok Where to_Id=" & Request.QueryString("id"))
LarsGMedlem sedan dec. 200012 464 inlägg
#5

Det räcker med en fråga, du kan också begränsa antalet svar till maximalt 8 direkt i frågan.

q = "Select alias,count(*) as antal " & _
" From gastbok inner join users  on from_id = user_id " & _
" Where to_Id=" & Request.QueryString("id") & _
" group by alias order by antal desc limit 8"

Set Flest=Conn.Execute(q)
y=1
Do Until Flest.EOF 
%>
    <b><%=y%>.</b> <%=Flest("alias")%> (<%=Flest("antal")%> )<br>
<%
  y=y+1
  Flest.MoveNext
Loop%>
AsaMedlem sedan dec. 20011 860 inlägg
#6

Tackar! Ska testa det!

125 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)