Avatar billede gatez Nybegynder
23. juni 2003 - 18:28 Der er 6 kommentarer og
1 løsning

Side 1 af 20

Hejsa...

Jeg bruger MySql database og har lige fundet et asp script som jeg skal bruge til at lave side tal når jeg henter data ud af min MySQL database.

Jeg for bare en fejl på den linje hvor der står:
rs.AbsolutePage = intPage

Jeg har fået af vide at det er fordi MySql ikke understøtter AbsolutePage men hvad gør jeg så ?
Nogle der kan ændre lidt i koden så det virker ?

Koden jeg har fundet er:
---- Kode start -----
<%
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
End If

Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT LinkURL FROM Links"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/aspdigital/db/demo.mdb")
rs.Open strSQL, strDSN, 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>"
    Do While Not rs.EOF And intRecCount > 0
        Response.Write rs("LinkURL") & "<br>"
    intRecCount = intRecCount - 1
    rs.MoveNext
    Loop
End If
rs.Close
Set rs = Nothing

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

Response.Write "<p>"
If Clng(intPage) > 1 Then
    Response.Write "<a href=paging.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=paging.asp?page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
    Response.Write "&gt;&gt;"
End If
%>
---- Kode slut -----
Avatar billede keysersoze Ekspert
23. juni 2003 - 19:22 #1
når du benytter en mysql database behøver du slet ikke så indviklet et script - du skal bare lave al din kode som du plejer og vha LIMIT-funktionen i mysql kan du styre alt;

SELECT * FROM dintabel LIMIT 0, 20

0 = start
20 = antal poster

herefter er det ret ligetil at lave frem og tilbage knapper
Avatar billede gatez Nybegynder
23. juni 2003 - 19:41 #2
Kan du ikke lave et eksemple som jeg kan se ?
Avatar billede gatez Nybegynder
23. juni 2003 - 19:46 #3
Vil det sige at "LIMIT 0, 20" er side 1 ?
og "LIMIT 1, 20" er side 2 ??
Avatar billede gatez Nybegynder
23. juni 2003 - 19:52 #4
Hallo ??
Avatar billede keysersoze Ekspert
23. juni 2003 - 19:54 #5
nej

0 var som sagt starten - altså "start ved post nummer X"

dvs side 2 vil se sådan ud;

SELECT * FROM dintabel LIMIT 20, 20
Avatar billede gatez Nybegynder
23. juni 2003 - 19:58 #6
Ok... Takker :-)
Avatar billede keysersoze Ekspert
23. juni 2003 - 20:03 #7
lidt mere korrekt så skal det nok hedde "LIMIT x, 21" - hvor x altså er starten. Så skal du kører dit loop igennem 20 gange. Hvis dit recordset så ikke er eof skal der være pil videre til næste side...
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