webForumDet fria alternativet

Visa öppen eller stängd

ASP

6 svar · 365 visningar · startad av Trumpf

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

Jag lägger in ett datum när tävlingen är. Och ett datum där sista anmälningsdag är.
Exempel tävling 2006-12-01 och sista anmälningsdag är 2006-11-29.

Använder mig av följande:
strSQL = "SELECT TOP 9 * From inbj_stor WHERE datum > DateAdd('d',-3,Date()) ORDER BY datum "
Set rs = con333.Execute(strSQL)

Jag visar vilka tävlingar som är på listan.

Speldatum <%=rs("datum")%>
Sista anmälningsdatum <%=rs("sista_datum")%>

Sen har jag <%=rs("lage")%> som är öppen eller stängd. Men hur gör jag få detta att fungera?
Har datumet passaret det vill säga 2006-11-30. kl 00:00 så ska det stå "stängt".
Annars ska det stå "öppen".

Någon som vill hjälpa mig.

Medlem sedan nov. 20051 317 inlägg
#2

If Now > rs("sista_datum") Then
Response.Write("Avslutad")
Else
Response.Write("Pågår")
End If

Menar du sådär?

Medlem sedan feb. 2004213 inlägg
#3

nja,
I databasen kan jag ha <%=rs("lage")%> alltid är öppen från start. Så långt förstår jag.
Men när datumet gått ut så vill jag att det ska bli "stängd" istället.
Måste få in värdet på något sätt.

Medlem sedan juni 20003 076 inlägg
#4

Trumpf skrev:

Men när datumet gått ut så vill jag att det ska bli "stängd" istället.
Måste få in värdet på något sätt.

Varför ha två verifikationer på att tävlingen är öppen eller stängd? Både datum och läge!
Det räcker väl fint att datumet gått ut! :)
Slopa läge då den kräver manuell inmatning, alt. en windows service eller schemaläggning beroende på databas.

Medlem sedan feb. 2004213 inlägg
#5

Mm.......ska väl kanske göra så. Men, men, men, men..........

Medlem sedan nov. 2002830 inlägg
#6

Allternativt att du gör något liknande (Som nedan) då någon laddar sidan:


 IF Now > rs("sista_datum") Then
        strSQL ="UPDATE INTO inbj_stor lage = 'Öppen' WHERE ID = "& getID &" "
 Else
        strSQL ="UPDATE INTO inbj_stor lage = 'Stängd' WHERE ID = "& getID &" "
 End IF

Dock är det helt onödigt (Och faktiskt dubbellagring av data) att ha statusen lagrad i databasen.

Medlem sedan juni 20003 076 inlägg
#7

För att slippa beräkna på aspsidan så är det ju rätt snyggt att göra det redan vid hämtningen:

SELECT blabla, CASE WHEN DATEDIFF(d, getDate(), datum) >3 THEN 'stängd' ELSE 'öppen' END AS Status 
FROM inbj_stor ...

Koden är för sql server, vill du ha för annan databas så fråga, så får du nog hjälp! :)

261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)