Avatar billede svjensen Nybegynder
25. juni 2003 - 00:39 Der er 5 kommentarer og
1 løsning

Problem med records i f.m. paging

Jeg anvender scriptet herunder til at vise de første 10 poster fra en database. Troede jeg.
For den viser kun den første record. Er der nogen der kan gennemskue fejlen?
Scriptet er taget fra spørgsmål 90358

<%
    intPage = Request("page")
    If intPage = "" Or Not isNumeric(intPage) Or intPage < 1 Then intPage = 1

    Set rs = Server.CreateObject("ADODB.RecordSet")
    strConn = "Driver={mysql};Server=localhost;Database=DB-navn;UID=brugernavn;PWD=password;"

    strSQL = "SELECT * FROM gdguest ORDER BY dato DESC;"
    Rs.CursorLocation = 3
    Rs.Open strSQL, strConn, 1
    If Not (rs.BOF Or rs.EOF) Then
        Rs.PageSize = 10
        Rs.AbsolutePage = intPage
        intRecCount = Rs.PageSize
        intPageCount = Rs.PageCount
        Response.Write "<p><b>Side " & intPage & " af " & intPageCount & "</b></p>"

        While Not rs.EOF And intRecCount > 0

            strmessage = rs("tekst")
            'strMessage = LinkString(strMessage)

            response.write "<table border=1 width=500 align=center><tr><th     width='20%'>Data</th><th>Indlæg</th></tr>"
            emaillink= "mailto:" & rs("email")
            If rs("email") <> "" Then
                response.write "<tr><td class=TDLeft><a href='" & emaillink & "'>" & rs("Navn") & "</a><br>" & rs("dato") & "<br>" & rs("tidspunkt") & "</td>"
            Else
                response.write "<tr><td class=TDLeft>" & rs("Navn") & "<br>" & rs("dato") & "</td>"
            End if
            response.write "<td class=TDLeft>" & strmessage & "</td></tr></table><br>"
            rs.MoveNext
       
        intRecCount = intRecCount - 1
        rs.MoveNext
        Wend
    End If

    Rs.Close
    Set Rs = Nothing

    Response.Write "<p>Gå til side "
    For intNum = 1 To intPageCount
        Response.Write "<a href=default.asp?page=" & intNum & ">" & intNum & "</a> "
    Next

    Response.Write "<p>"
    If Clng(intPage) > 1 Then
        Response.Write "<a href=default.asp?page=" & intPage - 1 & ">&lt;&lt;</a>"
    Else
        Response.Write "&lt;&lt;"
    End If

    Response.Write "&nbsp;"

    If Clng(intPage) < Clng(intPageCount) Then
        Response.Write "<a href=default.asp?page=" & intPage + 1 & ">&gt;&gt;</a> "
    Else
        Response.Write "&gt;&gt;"
    End If

%>
Avatar billede netro Nybegynder
25. juni 2003 - 01:23 #1
Hvorfor ikke anvende MySQL's udmærkede Limit-funktion?

Start = 0
Antal = 10
strSQL = "SELECT * FROM gdguest ORDER BY dato DESC Limit " & Start & ", " & Antal
Avatar billede eagleeye Praktikant
25. juni 2003 - 08:13 #2
Hvis du bruger MySQL kan du bruge dette eks til paging, hvor LIMIT bruges som kan udvælge startindex og antal:

http://activedeveloper.dk/aspdigital/2001112301.asp


Koden set da ellers umdillbart fin ud, kan det tænktes du kun har en record. Ellers det eks du har vist taget fra dette, måkse du kan prøve at ammenligne.:
http://activedeveloper.dk/aspdigital/kapitel2/paging.asp
Avatar billede coolstar Nybegynder
25. juni 2003 - 13:29 #3
tjaaa ser ud til du kun har en record i din database...
Avatar billede svjensen Nybegynder
25. juni 2003 - 20:57 #4
Ahh, kære venner. I tror da vel for f..... ikke at jeg finder på at stille spørgsmålet, hvis jeg kun har en record ?!?!?
Det kan godt være at jeg ikke er superhaj til asp, men jeg er altså ikke dum.

Jeg kigge lidt på forslagene.
Avatar billede eagleeye Praktikant
25. juni 2003 - 21:09 #5
arh.. prøv lige at lave en rigtig connection og ikke kun conStr til recordsetet..:

Så dette:

    Set rs = Server.CreateObject("ADODB.RecordSet")
    strConn = "Driver={mysql};Server=localhost;Database=DB-navn;UID=brugernavn;PWD=password;"

    strSQL = "SELECT * FROM gdguest ORDER BY dato DESC;"
    Rs.CursorLocation = 3
    Rs.Open strSQL, strConn, 1



Bliver til:


    Set rs = Server.CreateObject("ADODB.RecordSet")
    Set conn = Server.CreateObject("ADODB.Connection")
    strConn = "Driver={mysql};Server=localhost;Database=DB-navn;UID=brugernavn;PWD=password;"
    conn.Open strConn
 
    strSQL = "SELECT * FROM gdguest ORDER BY dato DESC;"
    Rs.CursorLocation = 3
    Rs.Open strSQL, Conn, 1
Avatar billede svjensen Nybegynder
25. juni 2003 - 22:02 #6
eagleeye -> dit sidste svar (fortsatte) gav ingen ændring. Til gengæld fik jeg det til at virke ved hjælp af dit første link, så du får pointene.
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