jag håller på att göra en kalender som skall vara uppbyggd på följande sätt:
- Den kollar dagens datum och ser om någon post finns som skall gälla för dagens datum. Om så är fallet, skrivs denna ut - finns det flera skrivs flera ut.
Därefter kontrollerar den de närmaste 7 dagarna. Den kollar om något finns för respektive dag och skriver i så fall ut dem.
Så här ska det se ut ungefär:
8:e maj (<--- den biten är redan fixad)
Idag: Pajkastning.
Kom och kasta paj
(om det finns flera event denna dag listas de också på samma stil, rubrik + förklaring)
------------------------------
11/12 | - Potatisskalning
- Räkrensning
-------------------------------
12/12 | - Tvätta sockor
-------------------------------
13/12 | - Vaxa katten
--------------------------------
14/12 | (<------- finns ingen info skrivs bara datum ut)
--------------------------------
15/12 | - Räkna maskrosor på fotbollsplan
- Trimma häcken
---------------------------------
16/12 | - Borsta tänderna
Datum är från början i formen 2003-11-14 18:32:32 i databasen, hur gör de om till 14/11-form? Och hur ska jag skriva loop-satserna och if-satserna? BITTE HILFE!
SebbeMedlem sedan jan. 20032 285 inlägg Hur menar du? Ska du bara ta ut idag + de sju följande dagarna?
/red Liten missuppfattning! Snart tillbaka med koden igen. ;)
SebbeMedlem sedan jan. 20032 285 inlägg Här är koden igen då...
For dtm = Date() To DateAdd("d", dtmIdag, 7)
If dtm = Date() Then
Response.Write(Day(Date()) & " " & MonthName(Month(Date()))
Else
Response.Write(Day(dtm) & "/" & Month(dtm) & " | ")
End If
strSQL = "SELECT text, rubrik FROM tabell WHERE FormatDateTime(datum, 2) = #" & dtm & "#"
Set objRS = objConn.Execute(strSQL)
If NOT objRS.EOF Then
If dtm = Date() Then
Response.Write("<br>Idag:<br>")
Do Until objRS.EOF
Response.Write(objRS("rubrik") & "<br>" & objRS("text") & "<br>")
objRS.MoveNext
Loop
Else
Do Until objRS.EOF
Response.Write("- " & objRS("rubrik") & "<br>")
objRS.MoveNext
Loop
End If
End If
Response.Write("<br>")
Set objRS = Nothing
Next
Felmess:
Kompileringsfel i Microsoft VBScript (0x800A03EE)
')' förväntas.
/hhgspunktse/hhgs/index.asp, line 649, column 59
Response.Write(Day(Date()) & " " & MonthName(Month(Date()))
----------------------------------------------------------^
@ndersMedlem sedan juni 200032 969 inlägg Då är det bara att räkna lite parenteser.
Engine^Medlem sedan dec. 20003 887 inlägg Så lägg till en parantes...
Response.Write (Day(Date()) & " " & MonthName(Month(Date()))) [blue]' <---')' förväntas.[/blue]
[blue]'eller ta bort en parantes:[/blue]
Response.Write Day(Date()) & " " & MonthName(Month(Date()))
Fortsättande fråga:
Jag använder följande SQL-sats för att få fram posterna för de närmaste 6 dagarna.
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("db/hhgsdb.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT * FROM Kalender WHERE datediff('d',datum,date()) = 0"
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic %>
Nu vill jag få ut formatet i den stilen som jag skrivit ovan, alltså att den skriver ut de närmaste dagarna i stilen
dag/månad (18/11)
Jag vill alltså att datorn loopar ut de närmaste sex dagarna, och där dagarna matchar innehållet i databasen skriver den ut dem enligt formatet:
18/11 - Event 1
- Event 2
--------------------
19/11 - Event 3
-------------------
20/11 - Event 4
-------------------
21/11
-------------------
22/11 - Event 5
SebbeMedlem sedan jan. 20032 285 inlägg Och nu skriver den ut hur? :o
så här skriver jag nu:
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("db/hhgsdb.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM Kalender WHERE datum>=dateadd('d',1,date()) and datum < dateadd('d',7,date()) order by datum"
Set RecSet=Connect.Execute(strSQL)
%>
<%
For lngDay=1 to 6
datDate=DateAdd("d",lngDay,Date())
datNext=DateAdd("d",lngDay+1,Date())%>
<%= RecSet("Datum") %><br>
<% Do
If RecSet.EOF Then Exit Do
If RecSet("datum")>=dateNext Then Exit Do %>
<%=RecSet("Rubrik")%><br>
<% RecSet.MoveNext
Loop
Next
%>
<% Recset.Close
Connect.Close
Set Recset = Nothing
Set Connect = Nothing
%>
men nu bara den loopar samma event... vad är felet?
SebbeMedlem sedan jan. 20032 285 inlägg Gjorde om min kod lite, och som den är nu funkar den i alla fall när jag testade den. :)
For dtm = Date() To DateAdd("d", Date(), 6)
If dtm = Date() Then
Response.Write(Day(Date()) & " " & MonthName(Month(Date())))
Else
Response.Write(Day(dtm) & "/" & Month(dtm) & " | ")
End If
strSQL = "SELECT [text], rubrik FROM tabell WHERE CDate(Year(datum) & ""-"" & Month(datum) & ""-"" & Day(datum)) = #" & dtm & "#"
Set objRS = objConn.Execute(strSQL)
If NOT objRS.EOF Then
If dtm = Date() Then
Response.Write("<br>Idag:<br>")
Do Until objRS.EOF
Response.Write(objRS("rubrik") & "<br>" & objRS("text") & "<br>")
objRS.MoveNext
Loop
Else
Do Until objRS.EOF
Response.Write("- " & objRS("rubrik"))
objRS.MoveNext
Loop
End If
End If
Response.Write("<br>")
Set objRS = Nothing
Next