webForumDet fria alternativet

Datum: viewFrom <> viewTo

ASP

5 svar · 160 visningar · startad av Eclipse

Medlem sedan juli 20003 825 inlägg
Frågan#1

Hur skriver jag!?

' ## CHECK VALIDITY OF DATE
IF mySQL("x_viewFrom") <> mySQL("x_viewTo") THEN
	IF mySQL("x_viewFrom") < date() OR mySQL("x_viewTo") > date() THEN
		mySQL.moveNext
		EXIT DO
	END IF
END IF

Jag har ytterligare ett fält, x_date, som posterna visas efter. Men om man skriver in olika datum i From och To så ska de kreterierna gälla. Jag vill alltså att man ska hoppa ur loopen om...

1. x_viewFrom och x_viewTo ej har samma datum.
2. x_viewFrom är senare än idag.
3. x_viewTo är tidigare än idag.

Ööööhhh... Jag vet inte... Allt blir lite bakvänt, därför vänder jag mig till forumet.

------------------
I sometimes wish I was famous.

Medlem sedan mars 20002 836 inlägg
#2

kanske detta funkar:

If mysQL("x_viewForm") <> mySQL("x_viewTo") OR mySQL("x_viewFrom") > dteDate OR mySQL("x_viewTo") < dteDate THEN
		Exit Do
Else
	mySQL.MoveNext
End If

[r]
ingen radbrytning mellan If .... Then
[/r]

cya,
PatrikB

------------------
*Det jämnar ut sig sa han som sket i byxan och satte sig ned*

[Redigerat av PatrikB den 11 jun 2001]

[Redigerat av PatrikB den 11 jun 2001]

Medlem sedan juli 20003 825 inlägg
#3

Det där ser jag direkt att det inte fungerar. Möjkligen om man byter det första OR mot ett AND.

Meningen är att om det står samma datum i från och till fälten ska de inte gälla, alltså ett sätt att stänga av funktionen på. Det är bara om det står olika datum som funktionen ska gälla och om då dessa datum hamnar utan för dagens datum, date(), då ska man inte hoppa ur loopen...

------------------
I sometimes wish I was famous.

Medlem sedan juli 20003 825 inlägg
#4

Jag kanske måste förtydliga mig lite...(???)

Loopen ovan ligger innuti en vanlig, större loop.

SELECT * FROM [news] WHERE [x_date] <= #date()# AND [x_view] = TRUE ORDER BY [x_date]

DO UNTIL mySQL.EOF
...
...
...
LOOP

Om det då, när ovanstående kreterier är uppfyllda, skulle visa sig att viewFrom är större än dagens datum eller att viewTo är mindre än dagens datum... Det är då man vill MoveNext och hoppa ur loopen.

------------------
I sometimes wish I was famous.

Medlem sedan mars 20002 836 inlägg
#5

... om jag förstod dig rätt ...

Du vill att den ska hoppa ur loopen om till och från datum skiljer sig från varandra.
Den ska även hoppa ur loopen om från datum är mindre än dagens datum och till datum är större än dagens datum

då borde denna funka:

' ## CHECK VALIDITY OF DATE
IF mySQL("x_viewFrom") <> mySQL("x_viewTo") THEN
	mySQL.MoveNext
	Exit Do
ELSEIF mySQL("x_viewFrom") < date() OR mySQL("x_viewTo") > date() THEN
	mySQL.moveNext
	EXIT DO
END IF

cya,
PatrikB

------------------
*Det jämnar ut sig sa han som sket i byxan och satte sig ned*

[Redigerat av PatrikB den 12 jun 2001]

Medlem sedan juli 20003 825 inlägg
#6

Nej! :-) Kolla mitt första inlägg.... and we're back in the loop! ;-)

[news] - nyheter
[x_date] - datum, kan ändras
[x_viewFrom] - datum, kan ändras, frivillig
[x_viewTo] - datum, kan ändras, frivillig.

För att man inte ska kunna skriva massa annan goja i datumfältet skriver jag...

IF IsDate(request("x_date")) = FALSE THEN x_date = date() ELSE x_date = request("x_date")
IF IsDate(request("x_viewFrom")) = FALSE THEN x_viewFrom = date() ELSE x_viewFrom = request("x_viewFrom")
IF IsDate(request("x_viewTo")) = FALSE THEN x_viewTo = date() ELSE x_viewTo = request("x_viewTo")

Vilket gör att man inte kan skriva "vad som helst" i viewFrom och viewTo. Innan jag hade IsDate() skrev jag "0000-00-00" som något slags wildcard... Men det returnerar false på IsDate och då var jag tvungen att hitta på en annan lösning.

...och den lösningen är att ha samma datum i de båda fälten.

------------------
I sometimes wish I was famous.

264 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)