Avatar billede technodance.dk Nybegynder
28. februar 2003 - 00:38 Der er 3 kommentarer og
3 løsninger

Hjælp Med next page?

Hej exp.

Jeg skal have lavet en gb til min side hvor jeg skal have next page på når der er mere end 10 indlæg på siden så kommer den næste side ved nummer 11..


Jeg har af felter:

dato
Navn
Mail
besked
Avatar billede angam Nybegynder
28. februar 2003 - 00:48 #1
Du skal ikke bruge databasen til at vide hvilken side der vises - men en variabel, der indeholder sidenummeret, og som du så hele tiden opdaterer ...

Her er et lille ekstremt simpelt skelet du kan bruge:

if(!isset($side)) $side = 0;  // Side 0 = første side

$first = ($side * 10) + 1;
$last = $first + 10;
$sql = "select * from guestbook order by dato limit";
for($n=0;$n<$last;$n++) {
  if($n < $first) {
  } else {
    echo("Gæstebogsindslag nummer $n <br>");
  }
}
echo('<a href="'.($side-1).'">Forrige</a>');
echo('<a href="'.($side+1).'">Næste</a>');
Avatar billede angam Nybegynder
28. februar 2003 - 00:50 #2
Ææh.. hovsa .. det var php.. asp-version coming up - sorry
Avatar billede hossein Nybegynder
28. februar 2003 - 00:50 #3
<%@ Language=VBScript %>
<% Option Explicit %>
'Option Explicit forces you to declare your variables. You should always use this for debugging purposes.
<% Response.Buffer = True %>
<!--#INCLUDE VIRTUAL="ADOVBS.INC" -->
'ADOVBS.INC is needed for named constants
<html>
<body>

<%
Dim Connect_String
Dim Page_Size 'variable which holds the number of records to be viewed per page.
Dim Current_Page 'variable which keeps track of which page is the current page.
Dim MyConn
Dim RS
Dim SQL
Dim Page_Count 'variable which stores the number of pages that can be viewed.

'if using SQL Server then use
Connect_String = "Provider=SQLOLEDB;Data Source=xxxx;UID=xxxx;PWD=xxxx;DATABASE=Demo"
'if using DSN-Less then use
Connect_String = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("your_database.mdb")
'if using DSN then use
Connect_String = Your_DSN

Page_Size = 15 'here we set the number of records viewed per page to 15.

If Request("Page")="" Then
Current_Page = 1
Else
Current_Page = CInt(Request("Page")) 'the CInt function converts the value to an integer.
End If

Set MyConn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.RecordSet")
MyConn.Open Connect_String

RS.CursorLocation = adUseClient
RS.PageSize = Page_Size

'below change the statement to reflect your query
SQL = "SELECT * FROM tblClients"

RS.Open SQL, MyConn, adOpenStatic, adLockReadOnly, adCmdText

Page_Count = RS.PageCount

If 1 > Current_Page Then Current_Page = 1
If Current_Page > Page_Count Then Current_Page = Page_Count

RS.AbsolutePage = Current_Page

Do While RS.AbsolutePage = Current_Page AND Not RS.EOF
%>

'below change the fields to the fields in your table. <table>
<tr><td><%=RS("ClientID")%></td></tr>
<tr><td><%=RS("Company")%></td></tr>
<tr><td><%=RS("Address")%></td></tr>
<tr><td><%=RS("Phone")%></td></tr>
</table>

<%
RS.MoveNext
Loop

'clean up
RS.Close
Set RS = Nothing
MyConn.Close
Set MyConn = Nothing

Response.Write "<br>"

'below is the page navigation.
'we're using images for Next and Previous. you could easily use simple hyperlinks instead.
If Current_Page <> 1 Then
Response.Write "<a href=""paging_demo2.asp?Page="
'be sure to rename paging_demo2.asp to whatever you end up naming this page.
Response.Write Current_Page - 1
Response.Write """><img src=""../prev_1.gif"" border=""0""></a>" & vbCrLf
Response.Write " " & vbCrLf
End If
If Current_Page < Page_Count Then
Response.Write "<a href=""paging_demo2.asp?Page="
Response.Write Current_Page + 1
Response.Write """><img src=""../next_1.gif"" border=""0""></a>" & vbCrLf
End IF

%>
<br>
</body>
</html>
Avatar billede angam Nybegynder
28. februar 2003 - 00:52 #4
Side = Request("side")

First = (side * 10) + 1
Last = First + 10
SQL = "select * from guestbook order by dato limit"
For n=1 to (last-1) step 1
  If n >= first Then
      Response.Write("Gæstebogsindslag nummer "& n &" <br>")
  End If
Next

Response.Write("<a href="""& (Side-1) &""">Forrige</a>")
Response.Write("<a href="""& (Side+1) &""">Næste</a>")

(Phew!)
Avatar billede hossein Nybegynder
28. februar 2003 - 00:53 #5
ups, det var et svar:
i den linie:
Page_Size = 15 'here we set the number of records viewed per page to 15.
vælger du 10

du kan ændre den:
<!--#INCLUDE VIRTUAL="ADOVBS.INC" -->
til:
<!--#INCLUDE file="ADOVBS.INC" -->

ADOVBS.INC filen finder i din maskine, også kopier du den under den mappe som din projekt er.
Avatar billede technodance.dk Nybegynder
04. januar 2004 - 07:19 #6
oki 10 til hver
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