Avatar billede hede98 Nybegynder
29. december 2003 - 11:33 Der er 18 kommentarer og
1 løsning

Vis 20 poster pr. side

Hej
Jeg har en tabel med mange poster, nogle gange få.
Kan jeg lavet noget så den kun viser 20 poster pr. side
Altså hvis jeg har 60 poster i en tabel, så skal den vise 20 poster på side1, lave en knap til side2 hvor den viser de næste 20 poster o.s.v.
Avatar billede eagleeye Praktikant
29. december 2003 - 11:35 #1
Det hedder paging og du kan se et godt eks her:
http://www.activedeveloper.dk/aspdigital/kapitel2/paging.asp
Avatar billede syntax_hh Nybegynder
31. december 2003 - 09:50 #2
<%
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
End If

Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "select * from messages order by id DESC"

'<paging> Databasen åbnes samtidigt
rs.Open strSQL, forbindelse, 1
If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 1
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
'</paging> 
%>


<%    Do While Not rs.EOF And intRecCount > 0
'Hvis ikke recordsettet er tomt, fortsæt


%>

'Her skal din html kode og asp kode være...


<%   
'Trækker den næste record ud og lukker din forbindelse

intRecCount = intRecCount - 1
rs.MoveNext
Loop
End If
rs.Close
Set rs = Nothing

'Paging scriptet

Response.Write "Pages "
For intNum = 1 To intPageCount


Response.Write "<a href='dinsidemedpaging.asp?fid=" &  "&page=" & intNum &  "'>" & intNum & "</a> "

next

%>
Avatar billede hede98 Nybegynder
03. januar 2004 - 16:12 #3
Nu har jeg prøvet, men det virker ikke helt. Vil du ikke være venlig at rettet koden til:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../db/auktion.mdb")
Conn.Open DSN
%>

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

Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "select * from salgsliste where liste='Auktionskatalog' and godkendt='ja'order by id DESC"

'<paging> Databasen åbnes samtidigt
rs.Open strSQL, forbindelse, 1
If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 1
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
'</paging> 
%>


<%    Do While Not rs.EOF And intRecCount > 0
'Hvis ikke recordsettet er tomt, fortsæt


%>




<body bgcolor="#FFFFFF" text="#000000" background="../db/img/baggrund.gif" bgproperties="fixed">
<table width="100%" border="1">
  <tr>
    <td width="7%"><font face="Arial" size="2">Katalog nr.</font></td>
    <td width="27%"><font face="Arial" size="2">Beskrivelse</font></td>
    <td width="7%"><font face="Arial" size="2">Billede (klik)</font></td>
    <td width="7%"><font face="Arial" size="2">Forhåndsbud</font></td>
  <%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../db/auktion.mdb")
Conn.Open DSN
%>
  <% set rskunder = Conn.execute("SELECT * FROM salgsliste where liste='Auktionskatalog' and godkendt='ja' order by katalognr")
do until rskunder.eof %>
  <tr>
  <font face="Arial">
    <td width="7%">
      <%Response.Write rskunder("katalognr")%><font face="Arial" size="2">
      </font>&nbsp;</td>
    <td width="27%">
      <font face="Arial"><%Response.Write rskunder("Beskrivelse")%><font face="Arial" size="2">
      </font></font>&nbsp;</td>
    <td width="7%"><font face="Arial" size="2">
    <a href="test1.asp?id=<%Response.Write rskunder("id")%>"><img border="0" src="../img/<%=rskunder("billede")%>" width="96" height="98"></a></font></td>
    <td width="7%">
      <%Response.Write rskunder("bud")%><font face="Arial" size="2">&nbsp KR.</font></td>
      <%
rskunder.movenext
loop
rskunder.Close
set rskunder = Nothing
%>
    </font>
    </table>

   
   
   
<%   
'Trækker den næste record ud og lukker din forbindelse

intRecCount = intRecCount - 1
rs.MoveNext
Loop
End If
rs.Close
Set rs = Nothing

'Paging scriptet

Response.Write "Pages "
For intNum = 1 To intPageCount


Response.Write "<a href='list1.asp?fid=" &  "&page=" & intNum &  "'>" & intNum & "</a> "

next

%>
   
   
   
    </body>
</html>
Avatar billede syntax_hh Nybegynder
03. januar 2004 - 16:15 #4
Hvad er det du ikke kan få til at virke?
Avatar billede hede98 Nybegynder
03. januar 2004 - 16:17 #5
den kommer med fejl...
skal jeg lige prøve at ligge den ud.
Avatar billede hede98 Nybegynder
03. januar 2004 - 16:23 #6
Avatar billede hede98 Nybegynder
03. januar 2004 - 16:40 #7
har du set på det
Avatar billede syntax_hh Nybegynder
03. januar 2004 - 16:44 #8
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "select * from salgsliste where liste='Auktionskatalog' and godkendt='ja'order by id DESC"

'<paging> Databasen åbnes samtidigt
rs.Open strSQL, forbindelse, 1
If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 1
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
'</paging> 
%>


Skal rettes til:


Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "select * from salgsliste where liste='Auktionskatalog' and godkendt='ja'order by id DESC"

rs.Open strSQL, forbindelse, 1
If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 1
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
%>
Avatar billede eagleeye Praktikant
03. januar 2004 - 16:45 #9
Prøv at rette denne linje:

rs.Open strSQL, forbindelse, 1

Til dette så du bruger dit connection object conn:

rs.Open strSQL, Conn, 1
Avatar billede hede98 Nybegynder
03. januar 2004 - 17:04 #10
Nu har jeg oprettet 22 poster, så skulle de først 20 jo gerne komme på side1 og de næste to på side2, men det gør den ikke..

se på http://www.york-auktion.dk/auktion/liste1.asp
Avatar billede eagleeye Praktikant
03. januar 2004 - 17:07 #11
Hvad har du sat rs.PageSize til?
Avatar billede hede98 Nybegynder
03. januar 2004 - 17:09 #12
nu har jeg sat den til 15. prøv og se...
Avatar billede eagleeye Praktikant
03. januar 2004 - 17:16 #13
Det ser ud som om du har dobbelt loop, og der er der også umiddlebart som man ser koden i 03/01-2004 16:12:46  dog med to forskellige reordset men samme SQL så for hver post i rs udskrives alle poster i rskunder.

Du skal på hvade lavet alt dette:


<%    Do While Not rs.EOF And intRecCount > 0
'Hvis ikke recordsettet er tomt, fortsæt


%>




<body bgcolor="#FFFFFF" text="#000000" background="../db/img/baggrund.gif" bgproperties="fixed">
<table width="100%" border="1">
  <tr>
    <td width="7%"><font face="Arial" size="2">Katalog nr.</font></td>
    <td width="27%"><font face="Arial" size="2">Beskrivelse</font></td>
    <td width="7%"><font face="Arial" size="2">Billede (klik)</font></td>
    <td width="7%"><font face="Arial" size="2">Forhåndsbud</font></td>
  <%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../db/auktion.mdb")
Conn.Open DSN
%>
  <% set rskunder = Conn.execute("SELECT * FROM salgsliste where liste='Auktionskatalog' and godkendt='ja' order by katalognr")
do until rskunder.eof %>
  <tr>
  <font face="Arial">
    <td width="7%">
      <%Response.Write rskunder("katalognr")%><font face="Arial" size="2">
      </font>&nbsp;</td>
    <td width="27%">
      <font face="Arial"><%Response.Write rskunder("Beskrivelse")%><font face="Arial" size="2">
      </font></font>&nbsp;</td>
    <td width="7%"><font face="Arial" size="2">
    <a href="test1.asp?id=<%Response.Write rskunder("id")%>"><img border="0" src="../img/<%=rskunder("billede")%>" width="96" height="98"></a></font></td>
    <td width="7%">
      <%Response.Write rskunder("bud")%><font face="Arial" size="2">&nbsp KR.</font></td>
      <%
rskunder.movenext
loop
rskunder.Close
set rskunder = Nothing
%>
    </font>
    </table>

Om til dette men kun et rtecordset:

<body bgcolor="#FFFFFF" text="#000000" background="../db/img/baggrund.gif" bgproperties="fixed">
<%    Do While Not rs.EOF And intRecCount > 0
'Hvis ikke recordsettet er tomt, fortsæt
%>
<table width="100%" border="1">
  <tr>
    <td width="7%"><font face="Arial" size="2">Katalog nr.</font></td>
    <td width="27%"><font face="Arial" size="2">Beskrivelse</font></td>
    <td width="7%"><font face="Arial" size="2">Billede (klik)</font></td>
    <td width="7%"><font face="Arial" size="2">Forhåndsbud</font></td>
  <tr>
  <font face="Arial">
    <td width="7%">
      <%Response.Write rs("katalognr")%><font face="Arial" size="2">
      </font>&nbsp;</td>
    <td width="27%">
      <font face="Arial"><%Response.Write rs("Beskrivelse")%><font face="Arial" size="2">
      </font></font>&nbsp;</td>
    <td width="7%"><font face="Arial" size="2">
    <a href="test1.asp?id=<%Response.Write rs("id")%>"><img border="0" src="../img/<%=rs("billede")%>" width="96" height="98"></a></font></td>
    <td width="7%">
      <%Response.Write rs("bud")%><font face="Arial" size="2">&nbsp KR.</font></td>

    </font>
    </table>
Avatar billede eagleeye Praktikant
03. januar 2004 - 17:19 #14
du kan evt prøve at paste koden så kan vi rette den til, hvis det virker lidt uvorskueligt ;)?
Avatar billede hede98 Nybegynder
03. januar 2004 - 17:47 #15
Prøv lige at se nu, virker næste.. de kommer godt nok i forkert række følge, samt så kan den ikke finde næste side!
Avatar billede eagleeye Praktikant
03. januar 2004 - 17:50 #16
Det med række følden kan klares i SQL sætningen du fjerner bare DESC:
strSQL = "select * from salgsliste where liste='Auktionskatalog' and godkendt='ja'order by id DESC"

Sådan her:
strSQL = "select * from salgsliste where liste='Auktionskatalog' and godkendt='ja'order by id"






Det med næste side er en skrive fejl i linket hedder ikke list1.asp med liste1.asp så der manger et e:
Response.Write "<a href='list1.asp?fid=" &  "&page=" & intNum &  "'>" & intNum & "</a> "
Sådan:
Response.Write "<a href='liste1.asp?fid=" &  "&page=" & intNum &  "'>" & intNum & "</a> "
Avatar billede eagleeye Praktikant
03. januar 2004 - 17:51 #17
Din oprindelige SQL blev sorteret på katalognr og ikke id:
"SELECT * FROM salgsliste where liste='Auktionskatalog' and godkendt='ja' order by katalognr"

så jeg ved ikke helt hvilken du vil bruge?
Avatar billede hede98 Nybegynder
03. januar 2004 - 19:27 #18
ok... sidste lille problem
Det er bare den samme side den henter og ikke de næste numme i databasen
Avatar billede eagleeye Praktikant
03. januar 2004 - 19:28 #19
Det ser ud som om du kun har en side altså 15 poster ialt?
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