webForumDet fria alternativet

sätta ihop denna kod

ASP

6 svar · 195 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Frågan#1

Hur ska man göra för att sätta ihop denna kod?

for i = lbound(vilkenPoll) to ubound(vilkenPoll)
for i = lbound(fraga) to ubound(fraga)

så att det blir en rad?

Medlem sedan juni 200032 967 inlägg
#2

Det kan du inte.
Varför vill du göra det?

Medlem sedan feb. 20011 498 inlägg
#3

Så här ser hela min kod ut. Och som ni ser i fetstil har jag två variablar.

	SQL = "Select * From poll order by pollID "
	RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic 

		set RecSet = Connect.execute(SQL)
		if not RecSet.eof then
		do until RecSet.eof
		intAntal = intAntal + 1
		RecSet.movenext
		loop
		RecSet.movefirst

[B]		redim vilkenPoll(intAntal)
		redim fraga(intAntal)[/B]
		

		i = 0
		do until RecSet.eof 
		vilkenPoll(i) = RecSet("pollID")
		fraga(i) = RecSet("question")

		i = i + 1
		RecSet.movenext
		loop

		RecSet.close
		

		for i = lbound(vilkenPoll) to ubound(vilkenPoll)
		for i = lbound(fraga) to ubound(fraga)
	
		SQL = "Select totalvotes From poll Where PollID = " &vilkenPoll(i)
		Set RS 	 	= Connect.Execute(SQL)
		antalroster = RS("totalvotes")
		Set RS		= nothing
	SQL 	 = "Select * From alt Where PollID = " &vilkenPoll(i)
		Set RS 	 = Connect.Execute(SQL)
		
	Do Until RS.EOF
		

	langd = 200 - (RS("total")/antalroster)*200

	Response.Write "<table border=""0"" cellpadding=""0"" cellspacing=""0"">"
	Response.Write "<tr>"
	Response.Write "<td width='*'>" & RS("alternative") & "&nbsp;&nbsp;</td></tr>"
	Response.Write "<tr><td><img src='bilder/votebla.gif' border='0' vspace='2' hspace='0' height='10' width='" & (RS("total")/antalroster)*200 & "' valign='top' align='absmiddle'><img src='bilder/votegra.gif' width='" & langd & "' height='10' border='0' vspace='2' valign='top' align='absmiddle'>&nbsp;" & Round((RS("total")/antalroster)*100, 1) & "%</td>"
	Response.Write "</tr><tr><td></td></tr>"
	Response.Write "</table>"

	RS.MoveNext
	Loop
	
	Set RS = nothing
	
	%>
	<table border="0"><tr height="1"><td></td></tr></table>
            
       Totalt 
      <b><%=antalroster%></b> r&ouml;ster <br><br>

<%
		next
		end if

%>
Medlem sedan juni 200032 967 inlägg
#4

Du kan inte använda i som loopkontroller i båda looparna eftersom de är nästlade. Byt den ena till typ p eller så.

Dessutom kan jag inte se någon next som passar till någon av dessa for-loopar?

Mvh,

Medlem sedan feb. 20011 498 inlägg
#5

Så här ser koden ut nu:

<%

	SQL = "Select * From poll order by pollID desc"
	RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic 

		set RecSet = Connect.execute(SQL)
		if not RecSet.eof then
		do until RecSet.eof
		intAntal = intAntal + 1
		RecSet.movenext
		loop
		RecSet.movefirst

		redim vilkenPoll(intAntal)
		
		

		i = 0
		do until RecSet.eof 
		vilkenPoll(i) = RecSet("pollID")
		

		i = i + 1
		RecSet.movenext
		loop

		RecSet.close
		

		for i = lbound(vilkenPoll) to ubound(vilkenPoll)
		
	
		[B]SQL = "Select * From poll Where PollID = " &vilkenPoll(i)[/B]
		Set RS 	 	= Connect.Execute(SQL)
		antalroster = RS("totalvotes")
		fraga = RS("question")
		
		Set RS		= nothing
	SQL 	 = "Select * From alt Where PollID = " &vilkenPoll(i)
		Set RS 	 = Connect.Execute(SQL)
	

%>		
<b><i><font color="#006600"><%=fraga%></font></i></b>
  <table border="0"><tr height="1"><td></td></tr></table>
<%
	
	Do Until RS.EOF

	langd = 200 - (RS("total")/antalroster)*200

	Response.Write "<table border=""0"" cellpadding=""0"" cellspacing=""0"">"
	Response.Write "<tr>"
	Response.Write "<td width='*'>" & RS("alternative") & "&nbsp;&nbsp;</td></tr>"
	Response.Write "<tr><td><img src='bilder/votebla.gif' border='0' vspace='2' hspace='0' height='10' width='" & (RS("total")/antalroster)*200 & "' valign='top' align='absmiddle'><img src='bilder/votegra.gif' width='" & langd & "' height='10' border='0' vspace='2' valign='top' align='absmiddle'>&nbsp;" & Round((RS("total")/antalroster)*100, 1) & "%</td>"
	Response.Write "</tr><tr><td></td></tr>"
	Response.Write "</table>"

	RS.MoveNext
	Loop
	
	
	
	%>
	<table border="0"><tr height="1"><td></td></tr></table>
            
       Totalt 
      <b><%=antalroster%></b> r&ouml;ster <br><br>

<%
		next
		end if

%>

Men det verkar som om itne for i avslutas för efter när den har skrivit ut alla poster (det funkar perfekt) så får jag detta fel:

Microsoft JET Database Engine fel '80040e14'

Syntaxfel (operator saknas) i frågeuttrycket 'PollID ='.

/80/fragor.asp, line 150

Medlem sedan dec. 200012 464 inlägg
#6

redim vilkenPoll(intAntal-1)

eftersom index börjar på 0

Medlem sedan feb. 20011 498 inlägg
#7

Tack så mycket. Nu funkar det perfekt.

280 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
139 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
137 ms — ändringar (db)