webForumDet fria alternativet

ASP och Databas: Visar fel på topp 5 i databasen:

Databaser & SQL

3 svar · 321 visningar · startad av Megaman

Medlem sedan jan. 2004118 inlägg
Frågan#1

Jag andvänder denna kod till ett forum för att visa vilka som har postat mest på forumet så långt allt väl den visar namn och hur många dom har postat men det är ett litet fel trots att jag har valt att den skall visa t. ex. topp 5 så visar den 7 och väljer jag att visa 10 så visar den 18 st.

Varför gör den så kan någon se vad som kan tänkas vara fel i koden???

Skulle vara tacksam om ni kunde hjälpa mig

Koden:

<%
Dim adoConn, SQL, rsTopPosters, strTopPosterUsername, strTopPostersForumPath, strTopPostersConn

'The path to the forum
strTopPostersForumPath = "http://www.adress.till.forumet/"

'Database connection
'Old Connection
'strTopPostersConn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("Sökväg till databasen")

'For a faster Connection
strTopPostersConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("sökväg till databasen.mdb")

'Uncomment for a full phsyical path. Then change the path
'strTopPostersConn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:/yoursite/root/forum/"

'Uncomment for a DSN connection
'strTopPostersConn = "DSN=DSN_NAME"

Set adoConn = Server.CreateObject("ADODB.Connection")
adoConn.Open strTopPostersConn
Set rsTopPosters = Server.CreateObject("ADODB.Recordset")

SQL = "SELECT TOP 5 tblAuthor.Author_ID, tblAuthor.Username, tblAuthor.No_of_posts FROM tblAuthor ORDER BY tblAuthor.No_of_posts DESC;"

rsTopPosters.Open SQL, adoConn

Do WHILE NOT rsTopPosters.EOF
 If len(rsTopPosters("Username"))>18 then
  strTopPosterUsername = left(rsTopPosters("Username"),18) & "...&nbsp;"
 Else
  strTopPosterUsername = rsTopPosters("Username")
 End If
 Response.Write("<a href=""javascript:openWin('" & strTopPostersForumPath & "pop_up_profile.asp?PF=" & rsTopPosters("Author_ID") & "','profile','toolbar=0,location=0,status=0,menubar=0,scrollbars=1,resizable=1,width=590,height=425' )"">" & strTopPosterUsername & "</a> (" & rsTopPosters("No_of_posts") & ")")
rsTopPosters.MoveNext
If NOT rsTopPosters.EOF Then Response.Write(",&nbsp;&nbsp;")

Loop

rsTopPosters.Close
Set rsTopPosters = Nothing
adoConn.Close
Set adoConn = Nothing
%>

Tacksam för all hjälp MVH Megaman:

Medlem sedan dec. 200012 464 inlägg
#2

Access fungerar på det sättet att om det är flera poster med samma värde i de kolumner du sorterar på så tas dessa också med.

SQL = "SELECT TOP 5 Author_ID, Username, No_of_posts 
FROM tblAuthor 
ORDER BY No_of_posts DESC, Username"

Flyttas från ASP

Medlem sedan jan. 2004118 inlägg
#3

Tack LarsG Funkar perfekt det du gav mig resultatet blev presic som jag vill..

Åter igen tacksam för din hjälp.

MVH Megaman...

Medlem sedan juni 200032 967 inlägg
264 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)