webForumDet fria alternativet

zpaging_II

ASP

23 svar · 194 visningar · startad av Crimz0n

Medlem sedan juli 200133 inlägg
Frågan#1

Har lite problem med Patricks zPaging_II script...jag använder det på en gästbok men när man går till sista sida, alltså den med de älsta posterna så står det

Microsoft VBScript runtime error '800a0009' 
Subscript out of range: '36'

Nån som känner sig manad att kliva fram och berätta hur man fixar d, eller ens om d går att fixa...

------------------
[Q]
It's better to burn out than fade away!

[/Q]

Medlem sedan feb. 20012 412 inlägg
#2

Hej!

Du har antagligen skrivit ett förhögt nummer när du definierar hämtningen från din sql fråga:


strvariabel = arrRecords(7,I)

skulle 7 vara större än antalet fält i SQL frågan får du det meddelandet.

mvh Jörgen

------------------
// Fin signatur
Jorgen hp = new Jorgen(this);

Medlem sedan mars 20002 836 inlägg
#3

första fältet i sql-frågan är alltid 0

om antal fält i sql-frågan är 7 så blir den sista positionen i den första dimensionen:

strvariabel = arrRecords(6,I)

cya,
PatrikB

------------------
*ordning och reda!, pengar på fredag.*

[Redigerat av PatrikB den 23 aug 2001]

Medlem sedan juli 200133 inlägg
#4

hmm, nae...allt verkar stämma

------------------
[Q]
It's better to burn out than fade away!

[/Q]

Medlem sedan mars 20002 836 inlägg
#5

jag vill se din kod .... :D

------------------
*ordning och reda!, pengar på fredag.*

Medlem sedan juli 200133 inlägg
#6

Here goes...(ignorera all html-kod)

<%
Option Explicit
Response.Buffer = FALSE
%>
<!--#include file="../_nem-flz/bot.inc"-->
<!--#include file="ssi/strings.txt"-->
<%
Session.LCID = 1053

Dim Anvandare, User
Anvandare = Request.Querystring("user")
User = Session("anv")

Function getRecords
	Dim m_objConn
	Dim m_strSQL
	Dim m_objRS
	Dim m_arrRecords
			
	Set m_objConn = Server.CreateObject("ADODB.Connection")
		m_objConn.Open "orrbo.nu-log"
		
		m_strSQL = "SELECT gast.BokId, gast.Meddelande, gast.Nar, gast.Vem, gast.Till, users.Anvnamn, users.bild " & _
			"FROM gast, users Where gast.Till ='" & anvandare & "' AND users.Anvnamn = gast.Vem " & _
			"ORDER BY Bokid DESC"
						
			Set m_objRS = m_objConn.Execute(m_strSQL)
			
				If Not m_objRS.EOF Then
					m_arrRecords = m_objRS.GetRows
					getRecords = m_arrRecords
				End If
				
				m_objRS.Close
			Set m_objRS = Nothing
			
		m_objConn.Close
	Set m_objConn = Nothing

End Function

Sub nUpdate
	Dim n_objConn
	Dim n_strSQL

	Set n_objConn = Server.CreateObject("ADODB.Connection")
	n_objConn.Open "orrbo.nu-log"

	n_strSQL = "UPDATE gast SET sett = '1' WHERE till ='" & Anvandare & "'"
	n_objConn.Execute(n_strSQL)
			
	n_objConn.Close
	Set n_objConn = Nothing
End Sub

Function oCount
	Dim o_objConn
	Dim o_strSQL
	Dim o_objRS
	Dim o_arrRecords
			
	Set o_objConn = Server.CreateObject("ADODB.Connection")
		o_objConn.Open "orrbo.nu-log"
		
		o_strSQL = "Select Count(bokid) AS Antal From gast Where Till ='" & Anvandare & "'"
						
			Set o_objRS = o_objConn.Execute(o_strSQL)

				o_arrRecords = o_objRS.GetRows
				oCount = o_arrRecords
			
				o_objRS.Close
			Set o_objRS = Nothing
			
		o_objConn.Close
	Set o_objConn = Nothing
End Function

Sub PrevPage(ByVal WichPage)
	Dim strScriptName
	strScriptName = Request.ServerVariables("SCRIPT_NAME")

	If CInt(WichPage) > 1 Then
		Response.Write "<a target=""main"" href=""gbok.asp?user=" & Anvandare & "&page=" & WichPage - 1 & "&paper_fallout=" & paper & """ onMouseOut=""MM_swapImgRestore()"""&_ 
		  "onMouseOver=""MM_swapImage('bakat','','../_nem-gfx/buts/but_foregaende_on.gif',0)""><IMG SRC='../_nem-gfx/buts/but_foregaende.gif' NAME='bakat' border=0></a>"
	Else
		Response.Write "<IMG SRC='../_nem-gfx/buts/but_foregaende.gif' border=0>"
	End If
End Sub

Sub NextPage(ByVal HowManyPages, ByVal WichPage)
	Dim strScriptName
	strScriptName = Request.ServerVariables("SCRIPT_NAME")
	
	If CInt(WichPage) < CInt(HowManyPages) Then
		Response.Write "<a target=""main"" href=""gbok.asp?user=" & Anvandare & "&page=" & WichPage + 1 & "&paper_fallout=" & paper & """ onMouseOut=""MM_swapImgRestore()"""&_ 
		  "onMouseOver=""MM_swapImage('framat','','../_nem-gfx/buts/but_nasta_on.gif',0)""><IMG SRC=""../_nem-gfx/buts/but_nasta.gif"" NAME=""framat"" BORDER=0>"
	Else
		Response.Write "<IMG SRC=""../_nem-gfx/buts/but_nasta.gif"" BORDER=0>"
	End If

End Sub

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_intRest

	m_intTotalPages = HowManyRecords / PageSize

	If m_intTotalPages < 1 Then
		m_intTotalPages = 1
	Else
		m_intRest = m_intTotalPages - CLng(m_intTotalPages)
		
		If m_intRest > 0 AND m_intRest < 0.5 Then
			m_intTotalPages = CLng(m_intTotalPages) + 1
		Else
			m_intTotalPages = CLng(m_intTotalPages)
		End If
	End If

	countPages = m_intTotalPages
End Function

Dim arrRecords
Dim crrRecords
Dim intPageSize
Dim intPage
Dim intStartID
Dim I
Dim intId
Dim strNamn
Dim dteDatum
Dim intTotalPages
Dim intTotalRecords
Dim msgMeddelande
Dim toTill
Dim picBild

intPage = Request.QueryString("page")
If intPage = "" Then intPage = 1

intPageSize = 10

arrRecords = getRecords

IF Anvandare = User THEN
Call nUpdate
END IF

crrRecords = oCount

intStartID = getStartID(intPageSize, intPage)
%>
 <%
If IsArray(arrRecords) Then
	intTotalRecords = crrRecords(0,0) + 1
	
	intTotalPages = countPages(intTotalRecords, intPageSize)

		For I = intStartID To ((intStartID + intPageSize) -1)

		intId = arrRecords(0,I)
		msgMeddelande = arrRecords(1,I)
		dteDatum = arrRecords(2,I)
		strNamn = arrRecords(3,I)
		toTill = arrRecords(4,I)
		picBild = arrRecords(6,I)

		 Response.Write "<tr bgcolor=""#c0c0c0"">"&_
		  "<td><FONT FACE=""verdana, tahoma, arial"" SIZE=1> " & dteDatum & " <br>"&_
		  "<a href=""user.asp?user="& strNamn & "&paper_fallout=" & paper & """ target=""main"">"& strNamn & "</a> &#0124; the king of the hill<br>"&_
		  "" & Server.HTMLEncode(msgMeddelande) & "<br><IMG SRC=""../_nem-gfx/pix.gif"" WIDTH=1 HEIGHT=3><br>"

		  IF Anvandare = User THEN
		  Response.Write "<a href=""gbok.asp?user="& strNamn & "&paper_fallout=" & paper & """ target=""main""><img src=""../_nem-gfx/buts/but_svara.gif"" border=0></a>"&_
		  "<a href=""gbok_del.asp?user="& toTill & "&id="& intId & "&who="& strNamn & "&paper_fallout=" & paper & """ target=""main""><img src=""../_nem-gfx/buts/but_tabort.gif"" border=0></a>"

		  ELSEIF strNamn = User THEN
		  Response.Write "<a href=""gbok_del.asp?user="& toTill & "&id="& intId & "&who="& strNamn & "&paper_fallout=" & paper & """ target=""main""><img src=""../_nem-gfx/buts/but_tabort.gif"" border=0></a>"
		  END IF

		  Response.Write "</td>"&_
		  "<td valign=top><a href=""user.asp?user="& strNamn & "&paper_fallout=" & paper & """ target=""main""><img src=""../_nem-gfx/users/"& picBild & """ height=""50"" border=0></a></td>"&_
		 "</tr><tr>"&_
		  "<td colspan=2 height=10><IMG SRC=""../_nem-gfx/pix.gif"" WIDTH=1 HEIGHT=1></td>"&_
		 "</tr>"

		Next

		Else
	
		intPage = 0
		intTotalRecords = 0
		intTotalPages = 0
	
		Response.Write "Du har inga gästboksinlägg!"
		End If

		Response.Write "</table>"&_
		 "<table cellpadding=0 cellspacing=0 height=16 width=""100%"" border=0><tr>"&_
		  "<td colspan=2 height=3 background=""../_nem-gfx/mid_linesmaker.gif""><IMG SRC=""../_nem-gfx/pix.gif"" WIDTH=1 HEIGHT=1></td>"&_
	        "</tr><tr>"&_
		  "<td width=""30%"" height=13 align=left valign=bottom>"

		  Call PrevPage(intPage)
		  Response.Write " &#0124; "
	
		 Response.Write "</td><td width=""70%"" height=13 valign=bottom>"

 		Response.Write "Visar nu sida <B>" & intPage & "</B> av " & intTotalPages & " &#0124; "

		Call NextPage(intTotalPages,intPage)
%> 

		

		 </td>
		</tr></table>

	      </td>
	     </tr></table>

[Redigerat av Crimz0n den 23 aug 2001]

Medlem sedan mars 20002 836 inlägg
#7

vilken rad blir felet på ....

------------------
*ordning och reda!, pengar på fredag.*

Medlem sedan mars 20002 836 inlägg
#8
intTotalRecords = crrRecords(0,0) + 1

vad gör denna bit kod????

------------------
*ordning och reda!, pengar på fredag.*

Medlem sedan mars 20002 836 inlägg
#9

Om du vill ha hur många inlägg det är totalt så gör du det så här:

intTotalRecords = UBound(arrRecords,2)

------------------
*ordning och reda!, pengar på fredag.*

Medlem sedan mars 20002 836 inlägg
#10

och om jag inte minns fel så stod det så från början ...

Arrayen arrRecords e den arrayen som hela scriptet bygger på så att mickla med att lägga in en annan räkning av totalt antal inlägg e inte så bra.

cya,
PatrikB

------------------
*ordning och reda!, pengar på fredag.*

Medlem sedan juli 200133 inlägg
#11

Du har rätt, den där raden stod där från början men då d ej funka testa jag att byta ut den mot en annan...men men nu satte jag dit den igen och.....det funkar fortfarande inte, står att felet ligger på rad 235..

------------------
[Q]
It's better to burn out than fade away!

[/Q]

Medlem sedan feb. 20012 412 inlägg
#12

vilken rad är 235?

mvh jörgen

------------------
// Fin signatur
Jorgen hp = new Jorgen(this);

Medlem sedan juli 200133 inlägg
#13

intTotalRecords = UBound(arrRecords,2)

------------------
[Q]
It's better to burn out than fade away!

[/Q]

Medlem sedan feb. 20012 412 inlägg
#14

men den raden har du ju bytat ut mot:

intTotalRecords = crrRecords(0,0) + 1

------------------
// Fin signatur
Jorgen hp = new Jorgen(this);

Medlem sedan juli 200133 inlägg
#15

jepp, det funkade inte då heller...det var då jag bytte tillbax utan resultat...

------------------
[Q]
It's better to burn out than fade away!

[/Q]

Medlem sedan feb. 20012 412 inlägg
#16

Måste ju säga att det är inte många rader som är likt orginalpagingen.

Jag hade börjat om från början.

mvh Jörgen

------------------
// Fin signatur
Jorgen hp = new Jorgen(this);

Medlem sedan juli 200133 inlägg
#17

tjaa, kanske d...vi får se vad Patrick säger imorrn...

------------------
[Q]
It's better to burn out than fade away!

[/Q]

Medlem sedan feb. 20012 412 inlägg
#18

Tja!

Blir nog måndag eller tidigast söndagkväll skulle jag tro :(

mvh Jörgen

------------------
// Fin signatur
Jorgen hp = new Jorgen(this);

Medlem sedan juli 200133 inlägg
#19

jobbit :(

------------------
[Q]
It's better to burn out than fade away!

[/Q]

Medlem sedan mars 20002 836 inlägg
#20

Back to reality!! ;)

Prova denna kod:

<%
Option Explicit
Response.Buffer = FALSE
%>
<!--#include file="../_nem-flz/bot.inc"-->
<!--#include file="ssi/strings.txt"-->
<%
Session.LCID = 1053
Dim Anvandare, User
Anvandare = Request.Querystring("user")
User = Session("anv")

Function getRecords
	Dim m_objConn
	Dim m_strSQL
	Dim m_objRS
	Dim m_arrRecords

	Set m_objConn = Server.CreateObject("ADODB.Connection")
		m_objConn.Open "orrbo.nu-log"

		m_strSQL = "SELECT gast.BokId, gast.Meddelande, gast.Nar, gast.Vem, gast.Till, users.Anvnamn, users.bild " & _
		"FROM gast, users Where gast.Till ='" & anvandare & "' AND users.Anvnamn = gast.Vem " & _
		"ORDER BY Bokid DESC"

		Set m_objRS = m_objConn.Execute(m_strSQL)

			If Not m_objRS.EOF Then
				m_arrRecords = m_objRS.GetRows
				getRecords = m_arrRecords
			End If

			m_objRS.Close
		Set m_objRS = Nothing

		m_objConn.Close
	Set m_objConn = Nothing

End Function

Sub PrevPage(ByVal WichPage)
	Dim strScriptName
	strScriptName = Request.ServerVariables("SCRIPT_NAME")

	If CInt(WichPage) > 1 Then
		Response.Write "<a target=""main"" href=""gbok.asp?user=" & Anvandare & "&page=" & WichPage - 1 & "&paper_fallout=" & paper & """ onMouseOut=""MM_swapImgRestore()"""&_ 
		"onMouseOver=""MM_swapImage('bakat','','../_nem-gfx/buts/but_foregaende_on.gif',0)""><IMG SRC='../_nem-gfx/buts/but_foregaende.gif' NAME='bakat' border=0></a>"
	Else
		Response.Write "<IMG SRC='../_nem-gfx/buts/but_foregaende.gif' border=0>"
	End If
End Sub

Sub NextPage(ByVal HowManyPages, ByVal WichPage)
	Dim strScriptName
	strScriptName = Request.ServerVariables("SCRIPT_NAME")

	If CInt(WichPage) < CInt(HowManyPages) Then
		Response.Write "<a target=""main"" href=""gbok.asp?user=" & Anvandare & "&page=" & WichPage + 1 & "&paper_fallout=" & paper & """ onMouseOut=""MM_swapImgRestore()"""&_ 
		"onMouseOver=""MM_swapImage('framat','','../_nem-gfx/buts/but_nasta_on.gif',0)""><IMG SRC=""../_nem-gfx/buts/but_nasta.gif"" NAME=""framat"" BORDER=0>"
	Else
		Response.Write "<IMG SRC=""../_nem-gfx/buts/but_nasta.gif"" BORDER=0>"
	End If

End Sub

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_intRest

	m_intTotalPages = HowManyRecords / PageSize

	If m_intTotalPages < 1 Then
		m_intTotalPages = 1
	Else
		m_intRest = m_intTotalPages - CLng(m_intTotalPages)

		If m_intRest > 0 AND m_intRest < 0.5 Then
			m_intTotalPages = CLng(m_intTotalPages) + 1
		Else
			m_intTotalPages = CLng(m_intTotalPages)
		End If
	End If

	countPages = m_intTotalPages
End Function

Dim arrRecords
Dim crrRecords
Dim intPageSize
Dim intPage
Dim intStartID
Dim I
Dim intId
Dim strNamn
Dim dteDatum
Dim intTotalPages
Dim intTotalRecords
Dim msgMeddelande
Dim toTill
Dim picBild

intPage = Request.QueryString("page")
	If intPage = "" Then intPage = 1

intPageSize = 10

arrRecords = getRecords

intStartID = getStartID(intPageSize, intPage)

If IsArray(arrRecords) Then
	intTotalRecords = UBound(arrRecords,2)

	intTotalPages = countPages(intTotalRecords, intPageSize)

	For I = intStartID To ((intStartID + intPageSize) -1)

		intId = arrRecords(0,I)
		msgMeddelande = arrRecords(1,I)
		dteDatum = arrRecords(2,I)
		strNamn = arrRecords(3,I)
		toTill = arrRecords(4,I)
		picBild = arrRecords(6,I)

	Next

	Call PrevPage(intPage)

	Response.Write " &#0124; "

	Call NextPage(intTotalPages,intPage)

End If
%>

så får vi se vad det blir för fel,om det blir några fel :p

cya,
PatrikB

------------------
*ordning och reda!, pengar på fredag.*

[Redigerat av PatrikB den 24 aug 2001]

265 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)