Avatar billede rasmus_h Nybegynder
17. oktober 2003 - 20:21 Der er 6 kommentarer og
1 løsning

Kun 5 poster pr side

Hej ASP-nødder... ;)

Jeg har lavet en side, hvor der udtrækkes en masse poster fra en database.

Jeg vil nu gerne ha lavet det sådan at den kun skriver 5 poster pr side, og hvor man så ellers kan gå videre til de 5 næste via et link.

Koden ser sådan ud:

<%

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("database/udrykninger.mdb")

SQLstmt = "SELECT * FROM udrykninger ORDER BY Dato desc;"

Conn.Execute (SQLstmt)

Set rs = conn.Execute(SQLstmt)
%>
<%
  DO WHILE NOT rs.EOF
    ID = rs("ID")
    Dato = rs("dato")
    Sted = rs("sted")
    Melding = rs("melding")
    Tekst = rs("tekst")
    Fra = rs("fra")
    PicID = rs("picid")
%>
<%
   
If PicID = 0 Then

    strBillede = "<img border='0' src='isl/nopicture.jpg' width='135' height='101'>"
    strLink = strBillede   

else

   
    strBillede = "<img border='0' src='isl/" & rs("picid") & "/thumbnail.jpg' width='135' height='101'>"
    strLink = "<a href='isl/" & rs("picid") & "/index.html'>" & strBillede & "</a>"
   
End If

%>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="740" id="AutoNumber4">
  <tr>
    <td width="160"><h2><center><%
Response.Write strLink
%></center></h2></td>
    <td width="565">
    <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="535" id="AutoNumber5">
      <tr>
        <td width="171">
        <h2><u><%=dato%></u><br>
&nbsp;</h2>
        </td>
        <td width="364">
        <h2><%=fra%> - <%=melding%><br>
        <%=sted%></h2>
        </td>
      </tr>
    </table>
    <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="535" id="AutoNumber6">
      <tr>
        <td>
        <h2><%=tekst%></h2>
        </td>
      </tr>
    </table>
    </td>
    <td width="15">&nbsp;</td>
  </tr>
  <tr>
    <td width="160">&nbsp;</td>
    <td width="565"><img border="0" src="images/streg.jpg" width="535" height="3"></td>
    <td width="15">&nbsp;</td>
  </tr>
</table>
<%
    rs.MoveNext
  LOOP
  RS.Close

conn.Close
Set conn = nothing
Set SQLstmt = nothing
    %>

Nogen der kan hjælpe med at lave det?

Vh

Rasmus!
Avatar billede eagleeye Praktikant
17. oktober 2003 - 20:23 #1
Det hedder paging og du kan se et eks her:

http://activedeveloper.dk/aspdigital/kapitel2/paging.asp
Avatar billede eagleeye Praktikant
17. oktober 2003 - 20:26 #2
Jeg kan prøve at uddybe dette eks (http://activedeveloper.dk/aspdigital/kapitel2/paging.asp) lidt:

Du har sikkert din egen SQL-sætning som du bruger til at søge med så den udskrifter du bare den fra ekeemplet:
strSQL = "SELECT LinkURL FROM Links"
med dig egen:
SQLstmt = "SELECT * FROM udrykninger ORDER BY Dato desc;"


Det vigtigt du rette denne som åber dit recordet til det som er vist på siden eller virker det ikke
Set rs = conn.Execute(SQLstmt)

Så det bliver:
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open SQLstmt, conn, 1



Så angiver du hvor mange du vil havde på hver side i linier, 10->XX:
    rs.PageSize = 10


Dit loop skal rettes så intRecCount > 0 er med:
    Do While Not rs.EOF And intRecCount > 0




Dette kode laver en liste i bunde med Gå til side 1 2 3 4 osv:
Response.Write "<p>Gå til side "
For intNum = 1 To intPageCount
    Response.Write "<a href=paging.asp?page=" & intNum & ">" & intNum & "</a> "
Next


Dette kode lave en links til forrige side via truk på <<:
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


Dette kode lave en links til næste side via tryk på >>:
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


Jeg håber det giver lidt ekstra hjælp ellers så bare spørg igen.
Avatar billede rasmus_h Nybegynder
17. oktober 2003 - 20:26 #3
Ikke en som kunne prøve at proppe det ind i min kode så det virker? For jeg fatter ikke særlig meget af den side der ;)

- Rasmus!
Avatar billede eagleeye Praktikant
17. oktober 2003 - 20:27 #4
Jo to sekunder så.
Avatar billede rasmus_h Nybegynder
17. oktober 2003 - 20:28 #5
Ahh tak eagleeye, jeg prøver lige at rode lidt - men hvis du vil må du hjertens gerne prøve at proppe det ind i min kode...

- Rasmus!
Avatar billede eagleeye Praktikant
17. oktober 2003 - 20:31 #6
<%

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

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("database/udrykninger.mdb")

Set rs = Server.CreateObject("ADODB.Recordset")

SQLstmt = "SELECT * FROM udrykninger ORDER BY Dato desc;"

rs.Open SQLstmt, conn, 1
%>
<%

If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 5
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount

  Do While Not rs.EOF And intRecCount > 0
    ID = rs("ID")
    Dato = rs("dato")
    Sted = rs("sted")
    Melding = rs("melding")
    Tekst = rs("tekst")
    Fra = rs("fra")
    PicID = rs("picid")
%>
<%
   
If PicID = 0 Then

    strBillede = "<img border='0' src='isl/nopicture.jpg' width='135' height='101'>"
    strLink = strBillede   

else

   
    strBillede = "<img border='0' src='isl/" & rs("picid") & "/thumbnail.jpg' width='135' height='101'>"
    strLink = "<a href='isl/" & rs("picid") & "/index.html'>" & strBillede & "</a>"
   
End If

%>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="740" id="AutoNumber4">
  <tr>
    <td width="160"><h2><center><%
Response.Write strLink
%></center></h2></td>
    <td width="565">
    <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="535" id="AutoNumber5">
      <tr>
        <td width="171">
        <h2><u><%=dato%></u><br>
&nbsp;</h2>
        </td>
        <td width="364">
        <h2><%=fra%> - <%=melding%><br>
        <%=sted%></h2>
        </td>
      </tr>
    </table>
    <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="535" id="AutoNumber6">
      <tr>
        <td>
        <h2><%=tekst%></h2>
        </td>
      </tr>
    </table>
    </td>
    <td width="15">&nbsp;</td>
  </tr>
  <tr>
    <td width="160">&nbsp;</td>
    <td width="565"><img border="0" src="images/streg.jpg" width="535" height="3"></td>
    <td width="15">&nbsp;</td>
  </tr>
</table>
<%
    intRecCount = intRecCount - 1
    rs.MoveNext
  LOOP
End if
RS.Close


'Her udskrives << 1 2 3 4 >>  altså link til siderne man kan gå til.
Response.Write "<p>Gå til side "
For intNum = 1 To intPageCount
    Response.Write "<a href=?page=" & intNum & ">" & intNum & "</a> "
Next

Response.Write "<p>"
If Clng(intPage) > 1 Then
    Response.Write "<a href=?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=?page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
    Response.Write "&gt;&gt;"
End If


conn.Close
Set conn = nothing
Set SQLstmt = nothing
%>
Avatar billede rasmus_h Nybegynder
17. oktober 2003 - 20:34 #7
Eagleeye - det virker bare perfekt!
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