Avatar billede saybot Nybegynder
14. december 2004 - 22:56 Der er 14 kommentarer

Hent top 5* fra database

Jeg har et problem med at trække top 5 ud fra en database... den gider simpelthen ikke at gører det :(

Hvad har jeg gjort forkert her:

__________KODE_____________________________________
<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("wars\clanwars.mdb")
Set rs = myConn.Execute("select top 5 * FROM played_war ORDER BY WarID DESC")
%>

Håber nogle kan hjælpe lidt... for jeg har siddet og rodet med det møj et stykke tid nu ! ;)
Avatar billede michael_stim Ekspert
14. december 2004 - 23:14 #1
Pröv uden *
Avatar billede michael_stim Ekspert
14. december 2004 - 23:18 #2
Syntaxen er rigtig kan jeg se. Hvilken fejl får du?
Avatar billede saybot Nybegynder
14. december 2004 - 23:33 #3
den skriver alle records ud, isteden for bare de 5
Avatar billede hojben Novice
14. december 2004 - 23:44 #4
strsql="SELECT TOP 10 * FROM firma ORDER BY ID desc"

denne bruges på www.klaverportalen.dk og viser de 10 senest tilmeldte baseret på en Auto-ID
Avatar billede michael_stim Ekspert
14. december 2004 - 23:44 #5
Har du flere med samme värdi?
Har du f eks 10 poster med samme värdi, tager den allesammen plus de 4 nästkommende (hvis de ti har den störste värdi)
Avatar billede kalp Novice
15. december 2004 - 00:42 #6
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("wars\clanwars.mdb")
str_sql2 = "SELECT TOP 5 * FROM played_war ORDER BY WarID desc"

Set rs = Conn.Execute (str_sql2)
%>

hvad hvis du laver det sådan?
Avatar billede saybot Nybegynder
15. december 2004 - 10:26 #7
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("wars\clanwars.mdb")
str_sql2 = "SELECT TOP 5 * FROM played_war ORDER BY WarID desc"

Set rs = Conn.Execute (str_sql2)
%>

Det hjalp ikke... der spytter stadig alle records ud isteden for det 5 kun :(
Avatar billede kalp Novice
15. december 2004 - 12:29 #8
<%
Do Until rs.EOF
%>


     

    <%
rs.MoveNext
Loop

  rs.Close
  Conn.Close
  Set rs = Nothing
  Set Conn = Nothing
%>

du skal nok have de her med
Avatar billede saybot Nybegynder
16. december 2004 - 16:17 #9
det hjælper ikke :(
Avatar billede kalp Novice
16. december 2004 - 19:29 #10
hvis du har sat det rigtigt op så kan jeg kun se der må være noget galt med din database... ellers prøv lige at teste på et andet webhotel
Avatar billede saybot Nybegynder
27. december 2004 - 23:02 #11
her er hele kode som den er lige nu... den viser stadig ikke kun 5 records :(
Jeg er ved at være godt træt hehe
___________________________________________________________

<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("wars\clanwars.mdb")
str_sql2 = "SELECT TOP 1 * FROM played_war ORDER BY WarID desc"

Set rs = myConn.Execute (str_sql2)
%>
<% Response.Buffer = True %>
<%
    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "SELECT * FROM played_war ORDER BY WarID DESC"
    rs.Open strSQL, myConn, 1, 3
   
    Set rs1 = Server.CreateObject("ADODB.RecordSet")
    strSQL = "SELECT Count(*) AS ItemCount1 FROM played_war"
    rs1.Open strSQL, myConn, 1, 3
   
    Set rs2 = Server.CreateObject("ADODB.RecordSet")
    strSQL = "SELECT Count(*) AS ItemCount2 FROM played_war WHERE Result = 'Won'"
    rs2.Open strSQL, myConn, 1, 3
   
    Set rs3 = Server.CreateObject("ADODB.RecordSet")
    strSQL = "SELECT SUM(uspoints) AS Points FROM played_war"
    rs3.Open strSQL, myConn, 1, 3
   
    Set rs4 = Server.CreateObject("ADODB.RecordSet")
    strSQL = "SELECT * FROM scheduled_war ORDER BY WarID DESC"
    rs4.Open strSQL, myConn, 1, 3
   
    Set rs5 = Server.CreateObject("ADODB.RecordSet")
    strSQL = "SELECT Count(*) AS ItemCount3 FROM played_war WHERE Result = 'Lost'"
    rs5.Open strSQL, myConn, 1, 3

    Set rs6 = Server.CreateObject("ADODB.RecordSet")
    strSQL = "SELECT Count(*) AS ItemCount4 FROM played_war WHERE Result = 'Draw'"
    rs6.Open strSQL, myConn, 1, 3
   
    Set rs7 = Server.CreateObject("ADODB.RecordSet")
    strSQL = "SELECT SUM(thempoints) AS Points2 FROM played_war"
    rs7.Open strSQL, myConn, 1, 3
   
%>
        <%
Do Until rs.EOF
%>
   
        </FONT>
      </tr>
      <tr>
    <FONT class=content>
        <td width="2%" align="right">&nbsp;</td>
        <td width="89%" align="right"><b>
</a> <a href="matches.asp"><font size="1" face="Verdana" color="#c0c0c0"><%=RS("opponent")%></a> <a href="?report=<%=RS("opponent")%>" onClick="MyWindow=window.open('report.asp?id=<%=RS("opponent")%>','MyWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=200,height=330'); return false;"><img border="0" src="grafik/report.gif" style= onmousedown=this.filters.alpha.opacity=100 onmouseover="this.filters.alpha.opacity=100" style="FILTER: alpha(opacity=40)" onmouseout="this.filters.alpha.opacity=40" alt="View report for <%=RS("opponent")%>"></a>&nbsp;<%
If RS("Result") = "Won" Then
response.write("<img border=""0"" src=""grafik/won_small.gif"" alt=""We Won This One"">")
END IF
%> <%
If RS("Result") = "Lost" Then
response.write("<img border=""0"" src=""grafik/loose_small.gif"" alt=""We Lost This One"">")
End If
%> <%
If RS("Result") = "Draw" Then
response.write("<img border=""0"" src=""grafik/Draw_small.gif"" alt=""We Draw This One"">")
End If

%></b><br><%=RS("uspoints")%></font><font size="1" face="Verdana" color="#c0c0c0"> - <b><%=RS("thempoints")%></b><br></font>

<% rs.Movenext
    Loop

  rs.Close
  myConn.Close
  Set rs = Nothing
  Set myConn = Nothing
%>
Avatar billede kalp Novice
27. december 2004 - 23:39 #12
Din order by warID er vist forkert...er det ikke dine rækkers ID nr?
Hvis dine spillere eller hvad det er har et felt som hedder "point" eller hvad det nu er det gælder om at have mest af så skal du sige ORDER BY point

og har lavet dette kode du kan ændre lidt på... start med at se om den ikke kun udskriver 5 felter!!


<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<p align="center"><font face="Courier New, Courier, mono" size="2">
  <%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("wars\clanwars.mdb")
str_sql2 = "SELECT TOP  * FROM played_war ORDER BY WarID desc"

Set rs = Conn.Execute (str_sql2)
%>
  </font></p>
<div align="center">
  <table width="73%" height="24" cellspacing="1" cellpadding="2">
    <tr bgcolor="#CCCCCC">
      <td width="82%"><font face="Courier New, Courier, mono" size="2" color="#000000"><b>Top
        Liste </b></font></td>
    </tr>
    <%
Do Until rs.EOF
%>
    <tr bgcolor="#DDEEFF">
      <td width="82%" bgcolor="#E5E5E5"><font face="Courier New, Courier, mono" size="2" color="#0000FF">
        </font><font face="Courier New, Courier, mono" size="2"><font color="red">
       
        <% = rs("DETFELTIDINDATABASESOM SKAL UDSKRIVES") %>
        </font></font></td>
    </tr>
    <%
rs.MoveNext
Loop

  rs.Close
  Conn.Close
  Set rs = Nothing
  Set Conn = Nothing
%>
    <p></p>
  </table>
</div>
</body>
</html>


hvis du skal udskrive flere felter end et skal du bare lave flere af denne
<% = rs("DETFELTIDINDATABASESOM SKAL UDSKRIVES") %>
Avatar billede saybot Nybegynder
28. december 2004 - 18:59 #13
Den sortere rigtigt på den måde... men det burde kunnes laves med den kode jeg har
Avatar billede kalp Novice
28. december 2004 - 22:02 #14
integrer din kode i mit så finder du langsomt ud af hvor den går galt henne:)

Jeg er virkelig dårlig til at rette ASP kode når det ikke kan køres på min pc eller ville jeg gerne have rettet den for dig! derfor jeg kom med et alternativt forslag til problemet:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester