Paging af resultater fra forespørgsel til acces-database:
Jamen så fandt jeg selv ud af det (glad amatør
Det handler selvfølgelig
om at overføre de forskellige kriterier fra forespørgslen (som vi nu gerne
vil have præsenteret 10 ad gangen - pr side) fra side til side...
Det gøres sådan her - måske ikke optimeret kode - men det virker:
****************************************************
<%@ LANGUAGE="VBSCRIPT" %>
<%
option explicit
dim kunstnernavn, strSQL, rs, page, intPage, intRecCount, intPageCount,
intNum, objRS
dim Navn, aarstal, billede, Notater, Kategoriinput, Notes2, Notes3, Titel,
strDSN
dim strNavn, strKunstnernavn, straarstal, strbillede, strNotater,
strKategori, strLink, strId
%>
<!--#include file="adovbs.inc"-->
<!--#include file="CommonFunctions.inc"-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Resultat(er) på Avanceret Søgning</title>
<link rel="stylesheet" type="text/css" href="1.css">
</head>
<body>
<a href="soegpaakunstner.asp">Retur til søgesiden</a> - <a
href="../index.asp">Retur
til forsiden</a><hr>
<%
'Paging
intPage = Request.Querystring("page")
If isNumeric(intPage) = False Or intPage < 1 Then
intPage = 1
kunstnernavn=ConvertString(request.form("kunstnernavn"))
aarstal=ConvertString(request.form("aarstal"))
Titel=ConvertString(request.form("Titel"))
billede=ConvertString(request.form("billede"))
Notater=ConvertString(request.form("Notater"))
Kategoriinput=ConvertString(request.form("Kategoriinput"))
Else kunstnernavn = Request.Querystring("kunstnernavn")
aarstal = Request.Querystring("aarstal")
Titel = Request.Querystring("Titel")
billede = Request.Querystring("billede")
Notater = Request.Querystring("Notater")
Kategoriinput = Request.Querystring("Kategoriinput")
End If
If kunstnernavn="" and aarstal="" and Titel="" and billede="" and Notater=""
and Kategoriinput="_ej bestemt" then Response.Redirect "angiv_kriterie.asp"
end if
response.write "<h1>" & "Du har søgt på: " & "<i>"
response.write kunstnernavn & " " & Titel & " " & aarstal & " " & billede &
" " & Notater & " " & Kategoriinput & "</h1></i><br>"
'Valget _ej bestemt skal fungere som joker
If Kategoriinput="_ej bestemt" then Kategoriinput="" end if
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "Select * From T_kunstnere where Navn "
strSQL = strSQL & "like '%" & kunstnernavn & "%'"
strSQL = strSQL & " and Aarstal like '%" & aarstal & "%'"
strSQL = strSQL & " and Titel like '%" & Titel & "%'"
strSQL = strSQL & " and Billede like '%" & billede & "%'"
strSQL = strSQL & " and Notater+Notes2+Notes3 like '%" & notater & "%'"
strSQL = strSQL & " and Kategori like '%" & Kategoriinput & "%'"
strSQL = strSQL & " order by Aarstal"
strDSN = "DRIVER={Microsoft Access Driver
(*.mdb)};DBQ="&"C:\Inetpub\databaser\russisk3.mdb"
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
rs.PageSize = 10
rs.AbsolutePage = intPage
intRecCount = rs.PageSize
intPageCount = rs.PageCount
Response.Write "<p><b>Side " & intPage & " af " & intPageCount &
"</b></p>"
Do while (Not rs.EOF) And intRecCount > 0
' Personens navn
strNavn = rs("Navn")
' lav et link til enkeltvaerk.asp med Id-værdien i URL
strLink = "<a href='enkeltvaerk.asp?Id=" & rs("Id") & "'>" & strNavn &
"</a>"
'Billedet tilknyttes
strBillede = rs("Billede")
'Aarstal tilknyttes
strAarstal = rs("Aarstal")
'Postnr - Id tilknyttes
strId = rs("Id")
'Kategori tilknyttes
strKategori = rs("Kategori")
' Liste med links
Response.write "<li>" & "Id-nr. " & strId & " i kategorien: " & strKategori
& "</li>"
Response.Write "<li>" & strLink & "</li>" & " (" & strAarstal & ") " &
"<br>" & "<img border='0' src='billeder/" & strBillede & "'>" & "<hr>"
intRecCount = intRecCount - 1
rs.MoveNext
Loop
End if
rs.Close
Set rs = Nothing
Response.Write "<p>Gå til side "
For intNum = 1 To intPageCount
Response.Write "<a href=soegresultater6.asp?page=" & intNum & "&"
Response.Write "kunstnernavn=" & kunstnernavn & "&"
Response.Write "aarstal=" & aarstal & "&"
Response.Write "Titel=" & Titel & "&"
Response.Write "billede=" & billede & "&"
Response.Write "Notater=" & Notater & "&"
Response.Write "Kategoriinput=" & Kategoriinput & ">" & intNum & "</a> "
Next
Response.Write "<p>"
If Clng(intPage) > 1 Then
Response.Write "<a href=soegresultater6.asp?page=" & intPage - 1 &
"&"
Response.Write "kunstnernavn=" & kunstnernavn & "&"
Response.Write "aarstal=" & aarstal & "&"
Response.Write "Titel=" & Titel & "&"
Response.Write "billede=" & billede & "&"
Response.Write "Notater=" & Notater & "&"
Response.Write "Kategoriinput=" & Kategoriinput & "><<</a>"
Else
Response.Write "<<"
End If
Response.Write " "
If Clng(intPage) < Clng(intPageCount) Then
Response.Write "<a href=soegresultater6.asp?page=" & intPage + 1 &
"&"
Response.Write "kunstnernavn=" & kunstnernavn & "&"
Response.Write "aarstal=" & aarstal & "&"
Response.Write "Titel=" & Titel & "&"
Response.Write "billede=" & billede & "&"
Response.Write "Notater=" & Notater & "&"
Response.Write "Kategoriinput=" & Kategoriinput & ">>></a> "
Else
Response.Write ">>"
End If
%>
<hl>
<a href="soegpaakunstner.asp">Retur til søgesiden</a> - <a
href="../index.asp">Retur
til forsiden</a><hr>
<br>
</body>
</html>
****************************************************************************
****
"Christian Nielsen" <ambolt@worldonline.dk> wrote in message
news:L1Qx8.2793$kp3.287607@news010.worldonline.dk...
> OK - jeg har skrevet tingene om efter opskriften - Og det virker -
næsten...
>
> Problemet er nu blot at når jeg f.eks. får vist 20 poster - altså side 1
med
> de første 10 og nederst et link til s. 2 med de sidste 10 - og klikker på
> linket til s.2, - så kommer jeg til s.2 men nederst er der nu links til
112
> sider (hele databasens indhold, pænt inddelt i sider á 10 poster men uden
> hensynstagen til de kriterier, der dannede udgangspunkt for s.1). Hvad er
> der galt?
>
> Sidens kode:
> *******************************************************************
> <%@ LANGUAGE="VBSCRIPT" %>
> <%
> option explicit
> dim kunstnernavn, strSQL, rs, page, intPage, intRecCount, intPageCount,
> intNum, objRS
> dim Navn, aarstal, billede, Notater, Kategoriinput, Notes2, Notes3, Titel,
> strDSN
> dim strNavn, strKunstnernavn, straarstal, strbillede, strNotater,
> strKategori, strLink, strId
> %>
> <!--#include file="adovbs.inc"-->
> <!--#include file="CommonFunctions.inc"-->
> <html>
>
> <head>
> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
> <title>Resultat(er) på Avanceret Søgning</title>
> <link rel="stylesheet" type="text/css" href="1.css">
> </head>
>
> <body>
>
> <a href="soegpaakunstner.asp">Retur til søgesiden</a> - <a
> href="../index.asp">Retur
> til forsiden</a><hr>
>
> <%
> 'Paging
> intPage = Request("page")
> If isNumeric(intPage) = False Or intPage < 1 Then
> intPage = 1
> End If
>
>
> kunstnernavn=ConvertString(request.form("kunstnernavn"))
> aarstal=ConvertString(request.form("aarstal"))
> Titel=ConvertString(request.form("Titel"))
> billede=ConvertString(request.form("billede"))
> Notater=ConvertString(request.form("Notater"))
> Kategoriinput=ConvertString(request.form("Kategoriinput"))
>
> If kunstnernavn="" and aarstal="" and Titel="" and billede="" and
Notater=""
> and Kategoriinput="_ej bestemt" then Response.Redirect
"angiv_kriterie.asp"
> end if
> response.write "<h1>" & "Du har søgt på: " & "<i>"
> response.write kunstnernavn & " " & Titel & " " & aarstal & " " & billede
&
> " " & Notater & " " & Kategoriinput & "</h1></i><br>"
>
> 'Valget _ej bestemt skal fungere som joker
> If Kategoriinput="_ej bestemt" then Kategoriinput="" end if
>
>
> Set rs = Server.CreateObject("ADODB.RecordSet")
> strSQL = "Select * From T_kunstnere where Navn "
> strSQL = strSQL & "like '%" & kunstnernavn & "%'"
> strSQL = strSQL & " and Aarstal like '%" & aarstal & "%'"
> strSQL = strSQL & " and Titel like '%" & Titel & "%'"
> strSQL = strSQL & " and Billede like '%" & billede & "%'"
> strSQL = strSQL & " and Notater+Notes2+Notes3 like '%" & notater & "%'"
> strSQL = strSQL & " and Kategori like '%" & Kategoriinput & "%'"
> strSQL = strSQL & " order by Aarstal"
> strDSN = "DRIVER={Microsoft Access Driver
> (*.mdb)};DBQ="&"C:\Inetpub\databaser\russisk3.mdb"
> rs.Open strSQL, strDSN, 1
>
> If Not (rs.BOF Or rs.EOF) Then
> rs.PageSize = 10
> rs.AbsolutePage = intPage
> intRecCount = rs.PageSize
> intPageCount = rs.PageCount
> Response.Write "<p><b>Side " & intPage & " af " & intPageCount &
> "</b></p>"
>
>
> Do while (Not rs.EOF) And intRecCount > 0
>
>
> ' Personens navn
> strNavn = rs("Navn")
>
> ' lav et link til enkeltvaerk.asp med Id-værdien i URL
> strLink = "<a href='enkeltvaerk.asp?Id=" & rs("Id") & "'>" & strNavn &
> "</a>"
>
> 'Billedet tilknyttes
> strBillede = rs("Billede")
>
> 'Aarstal tilknyttes
> strAarstal = rs("Aarstal")
>
> 'Postnr - Id tilknyttes
> strId = rs("Id")
>
> 'Kategori tilknyttes
> strKategori = rs("Kategori")
>
>
> ' Liste med links
> Response.write "<li>" & "Id-nr. " & strId & " i kategorien: " &
strKategori
> & "</li>"
> Response.Write "<li>" & strLink & "</li>" & " (" & strAarstal & ") " &
> "<br>" & "<img border='0' src='billeder/" & strBillede & "'>" & "<hr>"
>
> intRecCount = intRecCount - 1
> rs.MoveNext
> Loop
> End if
>
> rs.Close
> Set rs = Nothing
>
> Response.Write "<p>Gå til side "
> For intNum = 1 To intPageCount
> Response.Write "<a href=soegresultater6.asp?page=" & intNum & ">" &
> intNum & "</a> "
> Next
>
> Response.Write "<p>"
> If Clng(intPage) > 1 Then
> Response.Write "<a href=soegresultater6.asp?page=" & intPage - 1 &
> "><<</a>"
> Else
> Response.Write "<<"
> End If
>
> Response.Write " "
>
> If Clng(intPage) < Clng(intPageCount) Then
> Response.Write "<a href=soegresultater6.asp?page=" & intPage + 1 &
> ">>></a> "
> Else
> Response.Write ">>"
> End If
> %>
> <hl>
> <a href="soegpaakunstner.asp">Retur til søgesiden</a> - <a
> href="../index.asp">Retur
> til forsiden</a><hr>
> <br>
> </body>
> </html>
> ******************************************************************
>
> :-? Christian
>
>
>
>
> "Jakob Andersen" <jakob@effectus.dk> wrote in message
> news:aa76uj$22f$1@news.cybercity.dk...
> > "Christian Nielsen" <ambolt@worldonline.dk> wrote in message
> > news:l5Fx8.2858$HZ2.303845@news000.worldonline.dk...
> > > Hej - kan nogen se fejlen i nedenstående kode?
> >
> > Fejlen skyldes at dit recordset (rs) ikke gør brug af den rigtige
cursor,
> > prøv at se dette eksempel:
> >
> > <URL:
http://www.activeserverpages.dk/aspdigital/kapitel2/paging.asp>
> >
> > --
> > Jakob Andersen
> >
> >
>
>