Hej när jag gör select satsen och vill att den skall hämta från en tabell funkar sidan bra då ser den ut så här
http://www1.bengtdahlgren.se/paging/paging.asp
Men när jag gör select satsen med 2 tabeller Select * From Kontaktpersoner, kontor så blir sidan så här.
http://www1.bengtdahlgren.se/paging/paging2.asp
Nån som vet varför?
Detta är koden för hela sidan.
<%
Option Explicit
Response.Buffer = FALSE
%>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<%
'## -- hämta alla poster --
Function getRecords
Dim m_objConn
Dim m_strConnString
Dim m_strSQL
Dim m_objRS
Dim m_arrRecords
m_strConnString = "provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("../databas/bdab1.mdb")
'## -- skapa connection object och öppna upp databasen --
Set m_objConn = Server.CreateObject("ADODB.Connection")
m_objConn.Open m_strConnString
'## -- sql-fråga för att hämta alla poster --
'## -- denna ska du ändra så att den stämmer
'## med det som du vill hämta --
m_strSQL = "SELECT * FROM kontaktpersoner, kontor"
'## -- recordset för att hämta alla poster --
Set m_objRS = m_objConn.Execute(m_strSQL)
If Not m_objRS.EOF Then
m_arrRecords = m_objRS.GetRows
getRecords = m_arrRecords
End If
'## -- clean up --
m_objRS.Close
Set m_objRS = Nothing
m_objConn.Close
Set m_objConn = Nothing
End Function
'## -- skriv ut sidnummer navigeringen --
Sub PageNumbers(ByVal HowManyPages, WichPage)
Dim strScriptName
Dim I
'## -- kolla om det finns några sidor --
If HowManyPages = 0 Then
Response.Write "0"
Exit Sub
End If
strScriptName = Request.ServerVariables("SCRIPT_NAME")
'## -- skriv ut länkar till sid nummer n.
'## Den sida som visas ska ej vara länkad --
For I = 1 To HowManyPages
If CInt(I) <> CInt(WichPage) Then
Response.Write "<A href='" & strScriptName & "?" & _
"page=" & I & "'>" & I & "</A> "
Else
Response.Write "<B>" & I & "</B> "
End If
Next
End Sub
'## -- vilken post ska pagingen börja på --
Function getStartID(ByVal PageSize, ByVal ViewPage) ' As Integer
Dim m_intStart
m_intStart = ((PageSize * ViewPage) - PageSize)
getStartID = m_intStart
End Function
Function countPages(ByVal HowManyRecords, ByVal PageSize)
Dim m_intTotalPages
m_intTotalPages = CInt((HowManyRecords / PageSize) + 0.5)
'm_intTotalPages = CInt(((HowManyRecords / PageSize) + 1) - 1)
countPages = m_intTotalPages
End Function
'##***********************************************************************************
Response.write"Kontaktpersoner<br><br>"
Dim arrRecords
Dim intPageSize
Dim intPage
Dim intStartID
Dim I
Dim intId
Dim Namn
Dim tel
Dim intTotalPages
Dim intTotalRecords
Dim avd
Dim bild
Dim mob
Dim email
Dim intCounter
Dim img
'## -- vilken sida ska visas --
intPage = Request.QueryString("page")
If intPage = "" Then intPage = 1
'## -- hur många poster ska visas per sida --
intPageSize = 4
'## -- hämta alla records, hämtas med metoden getrows och returneras
'## som en array. --
arrRecords = getRecords
'## -- vilken post är den första --
intStartID = getStartID(intPageSize, intPage)
'## -- printa ut sidan som ska visas
'## alla poster finns i arrayen arrRecords som
'## kommer från funktionen getRecords --
If IsArray(arrRecords) Then
'Response.Write "E ju en array<BR>"
'## -- hur många records finns det totalt --
intTotalRecords = UBound(arrRecords,2) + 1
'## -- hur många sidor finns det i recordsetet --
intTotalPages = countPages(intTotalRecords, intPageSize)
'## -- startar tabellen utanför loopen --
Response.Write "<table border=""0"" width=""680""><tr>"
'## -- skriv ut sidnavigerings menyn --
Response.Write "Pages:"
Call PageNumbers(intTotalPages,intPage)
%>
<br><br>
<%
'## Loopen börjar
For I = intStartID To ((intStartID + intPageSize) -1)
intCounter = intCounter + 1
intId = arrRecords(0,I)
Namn = arrRecords(1,I)
tel = arrRecords(4,I)
avd = arrRecords(3,I)
bild = arrRecords(6,I)
mob = arrRecords(5,I)
email = arrRecords(8,I)
If Len(bild) > 0 Then
img ="<img src=""" & bild & """>"
Else
img = ""
End If
Response.Write "<td>" & img & "</td>" & _
"<td>" & Namn & "<br><br>" & _
avd & "<br><br>Tel: " & tel & "<br>Mob: " & mob & "<br><br>" & _
"<a href=""mailto:" & email & """>" & email & "</a>" & _
"</td>"
If intCounter mod 2 = 0 Then Response.Write "</TR><TR>"
If I = UBound(arrRecords,2) Then Exit For
Next
'## -- stänger tabellen efter loopen --
If intCounter mod 2 <> 0 Then
Do Until intCounter mod 2 = 0
Response.Write "<TD> </TD><TD> </TD>"
intCounter = intCounter + 1
Loop
End If
Response.Write "</tr></table><br>"
'## -- skriv ut sidnavigerings menyn --
Call PrevPage(intPage)
Response.Write " | "
Call NextPage(intTotalPages,intPage)
'## -- skriver ut sidnavigeringen --
'## -- skriv ut föregående sida --
Sub PrevPage(ByVal WichPage)
Dim strScriptName
strScriptName = Request.ServerVariables("SCRIPT_NAME")
'## -- skriv ut en länk till föregående sida --
If CInt(WichPage) > 1 Then
Response.Write "<A href='" & strScriptName & "?" & _
"page=" & WichPage - 1 & "'><img border=0
src=http://www.bengtdahlgren.se/bilder/pilar/left.gif>Föregående</A>"
Else
Response.Write "Föregående "
End If
End Sub
'## -- skriv ut nästa sida --
Sub NextPage(ByVal HowManyPages, ByVal WichPage)
Dim strScriptName
strScriptName = Request.ServerVariables("SCRIPT_NAME")
'## -- skriv ut en länk till nästa sida --
If CInt(WichPage) < CInt(HowManyPages) Then
Response.Write "<A href='" & strScriptName & "?" & _
"page=" & WichPage + 1 & "'>Nästa <img border=0
src=http://www.bengtdahlgren.se/bilder/pilar/right.gif></A>"
Else
Response.Write "Nästa "
End If
End Sub
Else
'## -- inga poster fanns i db --
intPage = 0
intTotalRecords = 0
intTotalPages = 0
'## -- skriv ut att inga poster hittades --
Response.Write "<P>No records found.</P>"
End If
%>
</BODY>
</HTML>
------------------
sZ][Cogo
<-| STARZINGER |->
