webForumDet fria alternativet

loop utan do

6 svar · 256 visningar · startad av ampy

ampyMedlem sedan feb. 20011 498 inlägg
#1
		If Request.Form("medlem") = "" Then

		

			Do Until RecSet.EOF
	
			If RecSet("medlem") = Request.Form("medlem2") Then 

			%>

	
			<script language="javascript">

			alert('Du har redan denna medlem i din maillista.');

			location.href='maillista.asp';
			</script>

			<%
			RecSet.Movenext
			Loop

			Else
			
			

 

		RecSet.Addnew

		RecSet("medlem") = Request("medlem2")
		RecSet("agare") = session("username")
		RecSet("agare_id") = session("id")

			
			End If

			

		Else
	

			Do Until RecSet.EOF
	
			If RecSet("medlem") = Request.Form("medlem2") Then

			%>

			<script language="javascript">

			alert('Du har redan denna medlem i din maillista.');

			location.href='maillista.asp';
			</script>
			
			<%
			RecSet.Movenext
			Loop

			Else

		RecSet.Addnew

		RecSet("medlem") = Request("medlem")
		RecSet("agare") = session("username")
		RecSet("agare_id") = session("id")
	

			End If 

		End If

vart kan jag lägga (finns 2 st):

RecSet.Movenext
Loop

kommer inte på ngt bra ställe för jag får loop utan do hela tiden

solbulleMedlem sedan mars 20015 287 inlägg
#2

Tycker det ser lite tokigt ut, först kollar du om
If Request.Form("medlem") = "" och i så fall går du vidare? <men det kanske kan stämma?
Samt att du kollar:
If RecSet("medlem") = Request.Form("medlem2")
I båda satserna, stämmer det?

Så här kan jag tänka mig att det ska se ut, men du kan effektivisera koden en hel del skulle jag tro:

If Request.Form("medlem") = "" Then

			Do Until RecSet.EOF
	
			If RecSet("medlem") = Request.Form("medlem2") Then 

			%>

			<script language="javascript">
			alert('Du har redan denna medlem i din maillista.');
			location.href='maillista.asp';
			</script>

			<%

			Else

		RecSet.Addnew
		RecSet("medlem") = Request("medlem2")
		RecSet("agare") = session("username")
		RecSet("agare_id") = session("id")

			End If

			RecSet.Movenext
			Loop

		Else
	
			Do Until RecSet.EOF
	
			If RecSet("medlem") = Request.Form("medlem2") Then

			%>

			<script language="javascript">
			alert('Du har redan denna medlem i din maillista.');
			location.href='maillista.asp';
			</script>
			
			<%

			Else

		RecSet.Addnew
		RecSet("medlem") = Request("medlem")
		RecSet("agare") = session("username")
		RecSet("agare_id") = session("id")
	
			End If 

			RecSet.Movenext
			Loop
		End If
ampyMedlem sedan feb. 20011 498 inlägg
#3

Får lopp utan do av din kod solbulle.

Men här kommer en beskrivning av koden:

Första så kollar jag om Request.Form("medlem") är tomt för att jag har även Request.Form("medlem2") för att besökaren kan välja i vilket fält han vill fylla i (Request.Form("medlem") är en rullist)

Efter att jag har kollat om Request.Form("medlem") är tomt så kollar jag ju om inte Request.Form("medlem") redan finns i databasen genom att loopa fram alla poster. Om det finns så skriver jag ju ut javascriptkoden. Om Request.Form("medlem") inte finns i databasen så lägger jag till Request.Form("medlem2") m.m.

Och efter det har du (solbulle) lagt

Loop
RecSet.Movenext

fast problemet är vart man ska lägga det.

Efter det gör jag samma upprepning men om inte Request.Form("medlem") finns i databasen så lägger jag till Request.Form("medlem") istället för första delen så la jag till Request.Form("medlem2")

Hoppas ni förstår koden bättre nu.

solbulleMedlem sedan mars 20015 287 inlägg
#4

Ändrat koden, sista loopen, du kan ju pröva den.

ampyMedlem sedan feb. 20011 498 inlägg
#5

Tack så mycket solbulle, kolla gärna igenom mina andra inlägg också, har inte fått hjälp på länge där :birp

solbulleMedlem sedan mars 20015 287 inlägg
#6

En något kortare variant:

If Request.Form("medlem") <> "" OR Request.Form("medlem2") <> "" then

If Request.Form("medlem") <> "" Then
medlem = Request.Form("medlem")
ElseIf Request.Form("medlem2") <> "" then
medlem = Request.Form("medlem2")

		End If

			Do Until RecSet.EOF
	
			If RecSet("medlem") = medlem Then 

			%>

			<script language="javascript">
			alert('Du har redan denna medlem i din maillista.');
			location.href='maillista.asp';
			</script>

			<%

			Else

		RecSet.Addnew
		RecSet("medlem") = medlem 
		RecSet("agare") = session("username")
		RecSet("agare_id") = session("id")

			End If

			RecSet.Movenext
			Loop

		End If
ampyMedlem sedan feb. 20011 498 inlägg
#7

Tack för den mer bantade koden men jag upptäckte ett fel. Om det inte finns några poster alls i databasen så läggs det inte till någonting men om det finns minst en post så funkar allt perfekt.

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)