Avatar billede radda Nybegynder
18. maj 2004 - 17:27 Der er 11 kommentarer

paging med database

Hej alle

jeg prøver så godt jeg kan at forklare mig.

Jeg vil gerne lave en paging funktion. mine data ser sådan ud i min relationstabel:
tabel: foredragKategori

ID    foredrag_FK    kategori_FK
10            62              42
11            63            18
12            64            42
13            65            18
15            67            42
16            69            18

der hvor jeg skal have vist et foredrag under en bestemt katagori vil jeg gerne have så man kan bladre videre til det næste foredrag indenfor samme katagori.

altså står man på:
default.asp?p_id=6&foredrag=65&kategori=18

vil jeg gerne have at man skal kunne komme til
<a href="default.asp?p_id=6&foredrag=69&kategori=18
">næste foredrag</a>

samt
forrige
<a href="default.asp?p_id=6&foredrag=63&kategori=18
">forrigeforedrag</a>

kender nogle til noget kode som jeg kan se eller hvordan skal jeg gøre det - jeg har ikke lavet en sådan funktion før
jeg giver 120 pt for al koden

på forhånd tak
r
Avatar billede keysersoze Ekspert
18. maj 2004 - 19:20 #1
Avatar billede radda Nybegynder
18. maj 2004 - 19:26 #2
tjaa - der var måske ikke lige det -
den bladre funktion i eksemplet tager jo og lægger en til eller trækker en fra intPage...

jeg har jo ikke en fortløbende talrække, men derimod tallene 65, 69, 33, 2939 eller ligende
Avatar billede keysersoze Ekspert
18. maj 2004 - 22:20 #3
ja - nej.

Det er korrekt at den tager en fortløbende nummerrække - men bruger du det eksempel direkte er det lige meget at du ikke har fortløbende numre i basen. Det der sker i eksemplet er, at der vælges alle ud og moves hen til den record sidenummeret svarer til i recordsettet.
Avatar billede radda Nybegynder
19. maj 2004 - 13:41 #4
Hej igen

det har du selvfølgelig ret i, men du har jeg et andte problem. Jeg skal have mere med i min querystring, nemlig:

default.asp?p_id=6&foredrag=149&kategori=52&page=3

og det vigtige er foredrag.
den fejler når den prøver at hente den næste post i et tom rs - altså denne linje:
foredrag = rs("foredrag_FK")

den fejler kun når jeg er ved den sidste post, selvfølgelig, men jeg kan ikke gennemskue hvordan jeg undgår dette


koden:
<%
foredrag=request.querystring("foredrag")
kategori=request.querystring("kategori")
searchtxt=request.querystring("search")
strSQL="SELECT * FROM foredrag where id="&foredrag
set visrs=conn.execute(strSQL)
beskrivelse = lavtegn(""&visrs("beskrivelse")&"")

intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If

Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT foredrag_FK FROM foredragKategori INNER JOIN foredrag ON foredrag.ID=foredragKategori.foredrag_FK WHERE kategori_fk ="&kategori & " AND foredrag.vis='ja'"
'set rs=conn.execute(strSQL)
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/db/foredragsportalen.mdb")
rs.Open strSQL, strDSN, 1
%>
<table>

<%

If Not (rs.BOF Or rs.EOF) Then

  rs.PageSize = 1
  rs.AbsolutePage = intPage
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount
  Response.Write "<p><b>Side " & intPage & " af " & intPageCount & "</b></p>"
  rs.MoveNext
  Response.Write "<p>"
 
  foredrag = rs("foredrag_FK")
   
If Clng(intPage) > 1 Then
  Response.Write "<a href=default.asp?p_id=6&foredrag=" & foredrag & "&kategori="& kategori & "&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?p_id=6&foredrag=" & foredrag & "&kategori="& kategori & "&page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
  Response.Write "&gt;&gt;"
End If

  intRecCount = intRecCount - 1
  if not rs.EOF then
  rs.MoveNext
  end if
End If

rs.Close
Set rs = Nothing
%>

kan du hjælpe

R
Avatar billede keysersoze Ekspert
19. maj 2004 - 19:27 #5
hvilken fejl?
Avatar billede radda Nybegynder
19. maj 2004 - 20:14 #6
jeg går:

Enten er BOF eller EOF sand, eller den aktuelle post er blevet slettet. Den anmodede handling kræver en aktuel post.

fordi der ikke er en næste post: foredrag = rs("foredrag_FK")

jeg er glad for at du gider kigge på det :)
r
Avatar billede keysersoze Ekspert
20. maj 2004 - 18:21 #7
grunden til det er, laver en rs.MoveNext to linier før du forsøger at lave den variable - og det skal det ikke. Det er der jo heller ikke i eksemplet
Avatar billede radda Nybegynder
25. maj 2004 - 09:15 #8
hmmm - jeg finder på noget andet - det driller

tak for det ellers
r
Avatar billede keysersoze Ekspert
25. maj 2004 - 12:36 #9
det var da let givet op... kan stadig godt hjælpe hvis der er noget at gå ud fra - bare husk at du ikke må ændre alt for meget i det eksempel jeg linkede til da det er det du har gjort og som får det til at fejle.

Husk at luk spm. hvis du er færdig her
Avatar billede keysersoze Ekspert
31. maj 2004 - 09:02 #10
?
Avatar billede keysersoze Ekspert
30. juli 2004 - 13:03 #11
lukketid?
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