<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
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.
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%>