Avatar billede nettet Nybegynder
21. november 2000 - 09:42 Der er 4 kommentarer og
1 løsning

Fortløbende nummerering!

Jeg har et script, som foretager en søgning i en Accessdb, som nummererer de søgresultatater, der måtte være. Jeg har valgt, at der skal vises 20 poster på hver side. Mit problem er nu, at hver gang jeg vil se den anden søgeside (paging)  med de næste 20 poster, nummererer scriptet de efterfølgende poster forfra, dvs. fra 1-20 og ikke fra 21-40.
Hvordan får den fortløbende nummerering til at køre?

Hele scriptet er således:

<% Response.Buffer = true %>
<html>
<head>
<title>Resultat af søgning</title>
</head>
<body BGCOLOR=\"#333333\" TEXT=\"#E6E8FA\" VLINK=\"#FCCF03\" LINK=\"#FCCF03\" ALINK=\"#06438A\" leftmargin=\"130\">


<p align=\"left\">

<b><dfn>

<font size=6 color=\"#FFFFFF\">Resultat af søgning
</font>

</dfn></b>

<font size=2 color=\"#FCCF03\"><p align=\"right\">
<applet code=\"fphover.class\" codebase=\"./\" width=\"93\" height=\"18\">
  <param name=\"textcolor\" value=\"#FFFFFF\">
  <param name=\"text\" value=\"Ny søgning\">
  <param name=\"hovercolor\" value=\"#E6E8FA\">
  <param name=\"url\" valuetype=\"ref\" value=\"search.htm\">
  <param name=\"color\" value=\"#6699CC\">
  <param name=\"font\" value=\"Helvetica\">
  <param name=\"fontstyle\" value=\"regular\">
  <param name=\"fontsize\" value=\"11\">
  <param name=\"effect\" value=\"bevelOut\">
</applet>
<br></p>



<%
Dim Strfritekst
Dim Strarbet
Dim Strtom



strfritekst = Request.querystring(\"fritekst\")
strarbet = Request.querystring(\"arbet\")

strtom = Strfritekst + strarbet

If Len(strtom) = 0 Then

Response.Clear
Response.Redirect(\"simpel.htm\")

Else

strfritekst = Replace(strfritekst,\"\'\",\"\'\'\")
strarbet = Replace(strarbet,\"\'\",\"\'\'\")

End If

intPage = Request(\"page\")
If isNumeric(intPage) = False Or intPage < 1 Then
intPage = 1
End If
Set rs = Server.CreateObject(\"ADODB.RecordSet\")

strSQL = \"SELECT * FROM af WHERE\"
strSQL = strSQL & \" (af LIKE \'%\" & strfritekst & \"%\')\"
strSQL = strSQL & \" OR (saer LIKE \'%\" & strfritekst & \"%\')\"
strSQL = strSQL & \" OR (arbet LIKE \'%\" & strfritekst & \"%\')\"
strSQL = strSQL & \" OR (fodt LIKE \'%\" & strfritekst & \"%\')\"
strSQL = strSQL & \" OR (dod LIKE \'%\" & strfritekst & \"%\')\"
strSQL = strSQL & \" OR (sted LIKE \'%\" & strfritekst & \"%\')\"
strSQL = strSQL & \" OR (yde LIKE \'%\" & strfritekst & \"%\')\"
strSQL = strSQL & \" OR (pakket LIKE \'%\" & strfritekst & \"%\')\"
strSQL = strSQL & \" OR (hylde LIKE \'%\" & strfritekst & \"%\')\"
strSQL = strSQL & \" OR (indsig LIKE \'%\" & strfritekst & \"%\')\"
strSQL = strSQL & \" OR (bem LIKE \'%\" & strfritekst & \"%\')\"
strSQL = strSQL & \" OR (indhold LIKE \'%\" & strfritekst & \"%\')\"

If Len(strarbet) > 0 Then
strSQL = strSQL & \" OR (arbet LIKE \'%\" & strarbet & \"%\')\"
End if

\' strSQL = strSQL & \"ORDER BY af\"

strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"test.mdb\")
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
rs.PageSize = 20
rs.AbsolutePage = intPage
intRecCount = rs.PageSize
intPageCount = rs.PageCount

AntalP = rs.RecordCount
Response.write \"<p><b>Din søgning resulterede i \" & AntalP & \" af<br></b></p>\"


Response.Write \"<p><b>Side \" & intPage & \" af \" & intPageCount & \"</b></p>\"


count=1 \' init. counter
Do While Not rs.EOF And intRecCount > 0

Response.Write count & \". <a href=\'fuldpost.asp?id=\" & rs(\"ID\") & \"\' target=\'_blank\'><font color=#FFFFFF><b>\" & rs(\"af\") & \", </b></font>\"
Response.Write \"<font color=#FFFFFF><b>\" & rs(\"arbet\") & \"</b></font></a><br>\"


intRecCount = intRecCount - 1
rs.MoveNext
count=count+1
Loop
Else
Response.Write \"Der er ikke fundet nogle af, prøv igen\"
End If
rs.Close
Set rs = Nothing
Response.Write \"<p>Gå til side \"
For intNum = 1 To intPageCount

Response.Write \"<a href=simpel.asp?fritekst=\" & strfritekst & \"&arbet=\" & strarbet &\"&page=\" & intNum & \">\" & intNum & \"</a> \"
Next
Response.Write \"<p>\"
If Clng(intPage) > 1 Then
Response.Write \"<a href=simpel.asp?fritekst=\" & strfritekst & \"&arbet=\" & strarbet &\"&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=simpel.asp?fritekst=\" & strfritekst & \"&arbet=\" & strarbet &\"&page=\" & intPage + 1 & \">&gt;&gt;</a>\"
Else
Response.Write \"&gt;&gt;\"
End If
%>
</body></html>

Avatar billede erikjacobsen Ekspert
21. november 2000 - 09:50 #1
Du skal vel bare i stedet for

  count=1

sige

  count=1+(intPage-1)*PageSize
Avatar billede nettet Nybegynder
21. november 2000 - 09:59 #2
mener du jeg i stedet for :

count=count+1

skal skrive:

count=1+(intPage-1)*PageSize

Avatar billede erikjacobsen Ekspert
21. november 2000 - 10:00 #3
Nej istedet for linien
  count=1 \' init. counter
Avatar billede nettet Nybegynder
21. november 2000 - 10:05 #4
Ok, men side 2 af søgeresultaterne nummereres stadig fra 1-20 og ikke fra 21-40
Avatar billede erikjacobsen Ekspert
21. november 2000 - 10:17 #5
Sorry
  count=1+(intPage-1)*rs.PageSize
eller blot
  count=1+(intPage-1)*20
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