Avatar billede haakonhoyland Nybegynder
30. juni 2001 - 19:06 Der er 7 kommentarer og
1 løsning

Problemer med page count

Jeg bruker dette page count greiene:

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

search = Request.Form(\"search\")

Set rs = Server.CreateObject(\"ADODB.RecordSet\")

strSQL = \"SELECT * FROM News WHERE Title LIKE \'%\" & search & \"%\' OR News LIKE \'%\" & search & \"%\' ORDER BY Dated DESC\"
strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"../admin/news.mdb\")
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
rs.PageSize = 5
rs.AbsolutePage = intPage
intRecCount = rs.PageSize
intPageCount = rs.PageCount
%>


<%
Response.Write \"<p><font face=\'verdana, arial, helvetica\' size=\'1\' color=\'#000000\'><b>Page \" & intPage & \" of \" & intPageCount & \"</b></font></p>\"

Do While Not rs.EOF And intRecCount > 0

Response.Write(\"<font face=\'verdana, arial, helvetica\' size=\'1\' color=\'#000000\'><b>\" & rs(\"Category\") & \":</b></font><br>\") & vbCrLf
Response.Write(\"<a href=\'http://www.ontheminute.com/news/\" & rs(\"Category\") & \"/news.asp?id=\" & rs(\"ID\") & \"\' class=menunews>\" & rs(\"Title\") & \"</a><br><font face=\'verdana, arial, helvetica\' size=\'1\' color=\'#000000\'>\") & vbCrLf
Response.Write(rs(\"Teaser\") & \"</font><br>\") & vbCrLf
Response.Write(\"<br><center><hr size=1 width=\'340\'></center>\") & vbCrLf

intRecCount = intRecCount - 1

rs.MoveNext
Loop
End If

rs.Close
Set rs = Nothing

Response.Write \"<p><font face=\'verdana, arial, helvetica\' size=\'1\' color=\'#000000\'><b>Go to page:</b></font> \"
For intNum = 1 To intPageCount
Response.Write \"<a href=default.asp?page=\" & intNum & \" class=menunews><b>\" & intNum & \"</a>  \"
Next

Response.Write \"<p>\"
If Clng(intPage) > 1 Then
Response.Write \"<center><a href=default.asp?page=\" & intPage - 1 & \" class=menunews><b>&lt;&lt;</b></a>\"
Else
Response.Write \"<center><font face=\'verdana, arial, helvetica\' size=\'1\' color=\'#000000\'><b>&lt;&lt;</b></font>\"
End If

Response.Write \"&nbsp;\"

If Clng(intPage) < Clng(intPageCount) Then
Response.Write \"<a href=default.asp?page=\" & intPage + 1 & \" class=menunews><b>&gt;&gt;</b></a></center> \"
Else
Response.Write \"<font face=\'verdana, arial, helvetica\' size=\'1\' color=\'#000000\'><b>&gt;&gt;</b></font></center>\"
End If
%>


---------------------

Prøv det på: http://www.ontheminute.com/news/archive/default.asp

Søk f.eks. på Copa America. da får du opp noen artikler. Men når du trykker på \"1\" page count griene.. kommer det andre artikler opp, ikke om de du søkte på...

Forstår dere ?

Hva må forrandres for at det skal virke bra  ???
Avatar billede keysersoze Guru
01. juli 2001 - 21:12 #1
grunden er formentlig, at når du søger så finder den de resultater den nu skal - men derefter er søge-strengen glemt. Dvs når man så trykker på fx \"1\", så er søge-strengen glemt og den laver altså ingen sortering....

løsningen vil formentlig være, på en eller anden måde at gemme søge-ordet i en session eller en querystring...
Avatar billede haakonhoyland Nybegynder
01. juli 2001 - 22:58 #2
Hvordan kan det gjøres da ?
Avatar billede keysersoze Guru
01. juli 2001 - 23:16 #3
det kan som sagt gøres på flere måder....

fx lade søgningen gå videre til fx:

search.asp?ord=*søgning*

eller

search.asp og gemme søgningen i en session...

der er flere muligheder - fejlen er i hvert fald at som scriptet er bygget op nu kan den ikke huske søgningen på mere end den ene side...
Avatar billede haakonhoyland Nybegynder
01. juli 2001 - 23:37 #4
hvordan kan det settes inn i scriptet da ?

her er scriptet:


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

search = Request.Form(\"search\")

Set rs = Server.CreateObject(\"ADODB.RecordSet\")

strSQL = \"SELECT * FROM News WHERE Title LIKE \'%\" & search & \"%\' OR News LIKE \'%\" & search & \"%\' ORDER BY Dated DESC\"
strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"../admin/news.mdb\")
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
rs.PageSize = 5
rs.AbsolutePage = intPage
intRecCount = rs.PageSize
intPageCount = rs.PageCount
%>

<html>
<head>
<title>Ontheminute.com - News - Archive</title>
</head>
<!--#include virtual=\"topb.txt\" -->

<table width=\"100%\" border=0 cellspacing=0 cellpadding=0>
<tr><td width=\"100%\">


<%
Response.Write \"<p><font face=\'verdana, arial, helvetica\' size=\'1\' color=\'#000000\'><b>Page \" & intPage & \" of \" & intPageCount & \"</b></font></p>\"

Do While Not rs.EOF And intRecCount > 0

Response.Write(\"<font face=\'verdana, arial, helvetica\' size=\'1\' color=\'#000000\'><b>\" & rs(\"Category\") & \":</b></font><br>\") & vbCrLf
Response.Write(\"<a href=\'http://www.ontheminute.com/news/\" & rs(\"Category\") & \"/news.asp?id=\" & rs(\"ID\") & \"\' class=menunews>\" & rs(\"Title\") & \"</a><br><font face=\'verdana, arial, helvetica\' size=\'1\' color=\'#000000\'>\") & vbCrLf
Response.Write(rs(\"Teaser\") & \"</font><br>\") & vbCrLf
Response.Write(\"<br><center><hr size=1 width=\'340\'></center>\") & vbCrLf

intRecCount = intRecCount - 1

rs.MoveNext
Loop
End If

rs.Close
Set rs = Nothing

Response.Write \"<p><font face=\'verdana, arial, helvetica\' size=\'1\' color=\'#000000\'><b>Go to page:</b></font> \"
For intNum = 1 To intPageCount
Response.Write \"<a href=default.asp?page=\" & intNum & \" class=menunews><b>\" & intNum & \"</a>  \"
Next

Response.Write \"<p>\"
If Clng(intPage) > 1 Then
Response.Write \"<center><a href=default.asp?page=\" & intPage - 1 & \" class=menunews><b>&lt;&lt;</b></a>\"
Else
Response.Write \"<center><font face=\'verdana, arial, helvetica\' size=\'1\' color=\'#000000\'><b>&lt;&lt;</b></font>\"
End If

Response.Write \"&nbsp;\"

If Clng(intPage) < Clng(intPageCount) Then
Response.Write \"<a href=default.asp?page=\" & intPage + 1 & \" class=menunews><b>&gt;&gt;</b></a></center> \"
Else
Response.Write \"<font face=\'verdana, arial, helvetica\' size=\'1\' color=\'#000000\'><b>&gt;&gt;</b></font></center>\"
End If
%>

<p>

<center>
<form action=\'default.asp\' method=\'post\'>
<input type=\'text\' name=\'search\'><input type=\'submit\' value=\'Search\'>
</form>
</center>

</td></tr>
</table>
<!--#include virtual=\"bottomb.txt\" -->   
</body>
</html>

<%
Conn.Close
set Conn = nothing
%>
Avatar billede keysersoze Guru
01. juli 2001 - 23:44 #5
lige umiddelbart er der to måder at gøre det på:

1. lav en ny side (search.asp) og så ændre
<form action=\'default.asp\' method=\'post\'>
til
<form action=\'search.asp\' method=\'post\'>

evt gøre noget mere der er en større omgang

2. gemme søgningen i en session og så ændre
search = Request.Form(\"search\")
til
session(\"search\") = Request.Form(\"search\")

samt
strSQL = \"SELECT * FROM News WHERE Title LIKE \'%\" & search & \"%\' OR News LIKE \'%\" & search & \"%\' ORDER BY Dated DESC\"
til
strSQL = \"SELECT * FROM News WHERE Title LIKE \'%\" & session(\"search\") & \"%\' OR News LIKE \'%\" & session(\"search\") & \"%\' ORDER BY Dated DESC\"

P.S. begge ting er bare et forslag... ikke nødvendigvis det rigtig for din side...
Avatar billede keysersoze Guru
21. august 2001 - 12:43 #6
sker der mere her???
Avatar billede haakonhoyland Nybegynder
22. august 2001 - 23:28 #7
Sorry for veldig sent svar .. :-)

Jeg fikk det ikke til..  Har du muligheten til å prøve å sette det inn i koden jeg vist over ?
Avatar billede haakonhoyland Nybegynder
06. november 2001 - 22:56 #8
afvis
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