webForumDet fria alternativet

Loop utan loopning

2 svar · 215 visningar · startad av Lina

LinaMedlem sedan jan. 2001327 inlägg
#1

Hallå alla...
Kan för mitt liv inte lösa detta problem:

Jag har en loop...
I den loopen skall databasen uppdateras med värdena från ett formulär.

Problemet jag har är att det är endast första posten som uppdateras, dom andra posterna struntar den i...
När jag sedan försökte skriva ut värdena så får jag inte med mig nåt värde alls... Men det skulle ju inte kunna vara så för då skulle ju inte uppdateringen funka alls...

Usch känner mig virrig... Fråga om ni inte fattar!

Så här der koderna ut i alla fall...

formulärsidan:

				<form action=privateFriends.asp method=post>
						<%
     					Do Until rs.EOF
     					strFriendNickName = rs("NickName")
     					strVisitorID = rs("VisitorID")
     					strlfQSFID = rs("FID")
						%>
				<tr>
					
					<td width=115 align=left valign=middle>
						<span class=LitenBrodtext><b>
						  <A href='publicRoom1.asp?ID=<%=strVisitorID%>'><%=strFriendNickName%></A>  
					</td>
					<td align=right valign=top>
						<span class=RodPytteLitenBrodtext><b>
						<input type=hidden name=FID value=<%=strlfQSFID%>>
						<input type=radio name=<%=strlfQSFID%> value=yes>Ja
										</td>
					<td align=right valign=top>
						<span class=RodPytteLitenBrodtext><b>
						 <input type=radio name=<%=strlfQSFID%> value=no>Nej 
										</td>
				</tr>
                <% rs.MoveNext
				Loop%>
				<tr><td colspan=3 align=center><br><input type=submit value=ok></td></tr>
				</form>

Och nästa sida:

	Dim FID, sqlAcceptFriend, sqlDenyFriend, rsScore

response.write (request.form("FID"))
	
	FOR EACH FID in request.form("FID")
		if request.form(FID) = "yes" then
			'*** Start Accept Friend
			sqlAcceptFriend = "Update Friends Set VisitorApproval=0, OwnerApproval=1, Friends=1, Date=getdate() Where FID="&FID&";"
			conn.Execute (sqlAcceptFriend)

			'*** Start Add 1 Score
		    Set rsScore = Server.CreateObject("ADODB.RecordSet")
		    strSQL = "Select HulePersonID, HuleScore, Modified From Hulen WHERE HulePersonID = " & strHulePersonID
		    rsScore.Open strSQL, Conn, adOpenKeyset, adLockOptimistic

		    If rsScore.EOF Then
    		Response.Write "<hr>øhh! Try again!!"
   			End if
			rsScore("HuleScore") = rsScore("HuleScore") + 1
			rsScore("Modified") = Now
			rsScore.Update

			rsScore.Close
			Set rsScore = Nothing
			'**  End Add 1 Score
			'*** End Accept Friend
	     Response.Redirect "privateFriends.asp"
		elseif request.form(FID) = "no" then
			'*** Start Delete Friend
			sqlDenyFriend = "DELETE FROM Friends WHERE FID ="&FID&";"
     		Conn.Execute (sqlDenyFriend)
			'*** End Delete Friend
	     Response.Redirect "privateFriends.asp"
		end if
	Next

Givetvis finns det fungerande databaskopplingar m.m

------------------
Du lever bara en gång och den gången är nu!

[Redigerat av Lina den 02 aug 2001]

emissionMedlem sedan dec. 19996 095 inlägg
#2

Du kör ju response.redirect inne i loopen, så den kan aldrig gå mer än ett varv.

Date är ett reserverat ord i SQL Server, så du bör skriva det som [Date].

Add 1 Score kan skrivas som en UPDATE-sats.

"UPDATE Hulen SET HuleScore=HuleScore+1,Modified=GETDATE() WHERE HulePersonID = " & strHulePersonID

Var kommer strHulePersonID in i bilden?

LinaMedlem sedan jan. 2001327 inlägg
#3

:r :r

Fy vad pinsamt... Och här har jag suttit och stirrat mig blind....

Ang Updaten som du föreslog håller jag med... Det är nämligen inte jag som har gjort den delen av koden...
Men jag ska nog passa på att ändra den nu :e

strHulePerson
Är en global variabel som innehåller den inloggade medlemmens id...

Sidan jag håller på med är del i en community...
:)

------------------
Du lever bara en gång och den gången är nu!

Genererad på 374 ms · cache AV · v20260730165559-full.f96bc7eb