webForumDet fria alternativet

problem med if sats

ASP

24 svar · 425 visningar · startad av Boorg · sida 2 av 2

Frågan, av Boorg

Har ett problem... Får fram fel värde i en if sats If Tot > Request.QueryString("k") Then Se = "<A>Det är fullbokat</A>" ElseIf Re("eID") = Request.QueryString("eID") And Re("mID") = Session("ED") then Se = "<A Href='badmin.asp?b=2emre&eID=" & Re("ID") & "'>Anmäl dig</A>" Else Se = "<A>Du är redan anmäld</A>" End If Så som det ser ut nu får jag fram Värdet ur den sista Else raden.

Läs frågan i sin helhet →
Medlem sedan juni 200032 967 inlägg
#21

Det som är grymt konstigt är din kod, jag förstår inte alls vad det är tänkt att den ska göra.

Vad är recordsetet ra och vad har det med det här att göra? Varför lade du en massa movefirst och movenext i loopen? Jag förstår ingenting. :)

  1. Indentera koden.
  2. Ta bort onödig kod (ex. if-satserna inne i dina loopar som kollar om recordset är EOF (du kommer ju inte in i loopen då)).
  3. Tänk efter vad det är du vill göra, och vad det är du vill skriva ut.

Är koden tydlig är det lättare att se vad man håller på med, och då också lättare att felsöka.

Medlem sedan okt. 2004409 inlägg
#22

lättare och se här

Medlem sedan juni 200032 967 inlägg
#23

Det är lättare om du postar koden i inlägget, det är ju inte så mycket kod.

Medlem sedan okt. 2004409 inlägg
#24

okej...
Så här ser den ut..
Hämtar från 3 olika tabeller. Därmed behöver jag Re Ra och Ree.

  Texter = "SELECT * FROM em_regg Order By ID DESC"
   Re.Open Texter, Con, 3, 3 

	Set Ree = Server.CreateObject("ADODB.Recordset") 
   Texte = "SELECT * FROM em Where ID = " & Request.QueryString("eID") & " "
   Ree.Open Texte, Con, 3, 3 
	
	Set Ra = Server.CreateObject("ADODB.Recordset") 
   Text = "SELECT * FROM medlem Where ID = " & Session("ED") & " "
   Ra.Open Text, Con, 3, 3

	Dim Tot
	Do Until Re.EOF	
 	If Re.EOF And Ra.EOF Then
	Exit Do
	End If 

	If Clng(Re("eID")) = Clng(Ra("ID")) then
	Tot = Tot + 1
	End If

	Re.MoveNext
	Ra.MoveNext
	Loop
	
	Dim Dat
	Dat = DateDiff("d", Date, Ree("Datum"))%>

<Table class="main" cellpadding="0" cellspacing="0">	
  <Tr>
   <Td width="60%" valign="top">
	<B class="Gul"><% =Ree ("Namn") %></B><BR>
	<A><% =Dat %> dagar kvar.</A><BR>
	<B>Lokal: </B><A><% =Ree ("Lokal") %>.</A><BR>
	<B>Datum: </B><A><% =Ree ("Datum") %>.</A><BR>
	<B>Max antal: </B><A><% =Ree ("Max") %>.</A><BR>
	<B>Information:</B><BR>
	<A><% =Ree ("Info") %></A><BR><BR>
<%	Do Until Re.EOF	
 	If Re.EOF And Ree.EOF And Ra.EOF Then
	Exit Do
	End If 

	If clng(Tot) > clng(Ree("Max")) Then
	Response.Write "<A>Det är fullbokat</A>"
	ElseIf Clng(Re("eID")) = clng(Request.QueryString("eID")) And Clng(Re("mID")) = Clng(Session("ED")) Then
	Response.Write "<A>Du är redan anmäld</A>"
	Else
	Response.Write "<A Href='badmin.asp?b=2emre&eID=" & Re("ID") & "'>Anmäl dig</A>"
	End If

	Ra.MoveFirst
	Re.MoveFirst
	Ree.MoveFirst
	Ra.MoveNext
	Re.MoveNext
	Ree.MoveNext
	Loop %>
   </td>
   <td width="40%" valign="top"><img src="../bilder/bord.jpg" width="180px" border="1px"></td>
  </tr>
</table>
<%	Ra.Close
	Re.Close
	Ree.Close
	Con.Close
	End If
Medlem sedan juni 200032 967 inlägg
#25

Jag förstår inte hur datat hänger ihop. Om du förklarar hur informationen i tabellerna hänger ihop med varandra så går det säkert att få ihop det till en SQL-fråga och ett recordset, och då blir det mycket mer lättarbetat.

314 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
192 ms — hämta tråd, inlägg och bilagor (db)
115 ms — ändringar (db)