webForumDet fria alternativet

Paging - av = NULL

4 svar · 219 visningar · startad av Ceeron

CeeronMedlem sedan aug. 2000378 inlägg
#1

Har en sida med paging som listar messen från en speciell person. Om man dock har tagit bort alla mess från denna person lr försöker anropa sida med hjälp av ett "av" som icke existerar i db får man ett error:


If Not Request.QueryString("av") = False Then

'###

Set rs = Server.Createobject("Adodb.Recordset")

sida = request.querystring( "sida" )
if sida = "" then sida = 1 end if

'### SQL sats
	sql = "select * from mess where av = '" & Request.QueryString("av") & "' and anvID = " & cint(Session("ID")) & " order by datum desc"

with rs
  .cursorlocation = 3
  .open sql, Connect
  .pagesize = 10
[b]  .absolutepage = sida[/b]
end with

intPages = cint( rs.pagecount )
intCurrentPost = 0

do while not rs.eof and intCurrentPost < rs.pagesize

'skriver ut

  intCurrentPost = intCurrentPost + 1
  rs.movenext
loop

if not rs.pagecount <= 1 then
response.write "Sidnavigering: "
for i = 1 to rs.pagecount
  response.write "<a href='mess.asp?av=" & Request.QueryString("av") & "&sida=" & i & "'>" & i & "</a> "
next
end if

rs.close
set rs = nothing

'###

End If

Alltså i SQL-satsen försöker den få fram alla som stämmer överens med querystringen "av"...

får att:
Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats. Den begärda åtgärden kräver en aktuell post.

Hur löser man detta?

Jesper TMedlem sedan nov. 20017 144 inlägg
#2

Något sådant kanske:

do while not rs.eof and intCurrentPost < rs.pagesize

'Skriver ut o så

  intCurrentPost = intCurrentPost + 1
  rs.movenext
loop
else
Response.write "Inga poster!"
end if
CeeronMedlem sedan aug. 2000378 inlägg
#3

funkar inte bara så... fyller på med hela koden...

URL till sidan när man se en viss person e: mess.asp?av=fgd&sida=3 ex...
det e när av = nåt som inte existerar i db lr om av = inget alls som det inte funkar...

den markerade raden e den som det klagas på men kanske icke e så....


If Not Request.QueryString("av") = False Then

'###

Set rs = Server.Createobject("Adodb.Recordset")

sida = request.querystring( "sida" )
if sida = "" then sida = 1 end if

'### SQL sats
	sql = "select * from mess where av = '" & Request.QueryString("av") & "' and anvID = " & cint(Session("ID")) & " order by datum desc"

with rs
  .cursorlocation = 3
  .open sql, Connect
  .pagesize = 10
[b]  .absolutepage = sida[/b]
end with

intPages = cint( rs.pagecount )
intCurrentPost = 0

do while not rs.eof and intCurrentPost < rs.pagesize

'skriver ut

  intCurrentPost = intCurrentPost + 1
  rs.movenext
loop

if not rs.pagecount <= 1 then
response.write "Sidnavigering: "
for i = 1 to rs.pagecount
  response.write "<a href='mess.asp?av=" & Request.QueryString("av") & "&sida=" & i & "'>" & i & "</a> "
next
end if

rs.close
set rs = nothing

'###

End If
@ndersMedlem sedan juni 200032 969 inlägg
#4

Testa:

with rs
  .cursorlocation = 3
  .open sql, Connect
end with
if not rs.eof then
  rs.pagesize = 10
  rs.absolutepage = sida
  intPages = cint( rs.pagecount )
  intCurrentPost = 0
end if

mvh

CeeronMedlem sedan aug. 2000378 inlägg
#5

Tackar det funkar bra =)
Mixtra bara lite =b

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)