webForumDet fria alternativet

Om datumet är äldre än posten ska det visas, annars inte

ASP

4 svar · 356 visningar · startad av Gardell

Medlem sedan juli 2002688 inlägg
Frågan#1

Hej!

Jag får inte det här att fungera riktigt.

<%
	Set Connect = Server.CreateObject("ADODB.Connection")
	Set UDS = Server.CreateObject("ADODB.Recordset")

	Connect.Open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db.mdb")
	SQL = "Select * From copy Order By datum Desc"
	UDS.Open SQL, Connect 
	
	If DateDiff("d", Date(), UDS("datum")) > 0 Then
	Do Until UDS.EOF
%>

	<option value="copy.asp?id=<%=UDS("id")%>"><%=UDS("datum")%></option>

<%
	UDS.MoveNext
	Loop
	UDS.Close	
%>

<% Else %>

<% End If %>

Jag har några fält i databasen. Ett 2005-03-01, ett 2006-03-01 och ett 2006-07-01. Det jag vill uppnå är att 2006-07-01 inte ska visas då det datumet inte har varit än. Om jag använder ">" så visas alla inlägg och om jag använder "<" så visas inget.. Har testat med många andra lösningar som t.ex:

If UDS("datum") < Date Then

Men jag får samma resultat med det.. Hur ska jag lösa detta? Tacksam för svar! :)

Medlem sedan dec. 19996 721 inlägg
#2

1. Du gör kontrollen utanför loopen. Ajabaja.
2. Fråga databasen om rätt saker i stället för att använda en if-sats på resultatet

Medlem sedan juli 2002688 inlägg
#3

Jaha? :p :r

1. Vilken kontroll?
2. Hur ska jag fråga då?

Medlem sedan dec. 19996 721 inlägg
#4

Gardell skrev:

1. Vilken kontroll?

Din if-sats där du kollar datumet. Den ligger utanför loopen, så det kommer alltså att bli alla rader från databasen eller inga alls, beroende på värdet i den första raden.

Gardell skrev:

2. Hur ska jag fråga då?

Något i stil med

Select * From copy WHERE datum<=date()
Medlem sedan juli 2002688 inlägg
#5

Ahhh! Tänk vad körd man är ibland.. :stud Man bockar!

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