Kalender & databas

ASP

5 svar · 466 visningar · startad av voigtann1

Medlem sedan juni 20019 519 inlägg
Trådstart#1

Jag kör denna kod:

for i = 1 to intDays
  if intcount mod 7 = 0 and intcount > 0 then response.write "</tr><tr>"
    if i = day(date()) and mdate = month(now()) and ydate = year(now()) then
      response.write "<td align='center' style='background-color:" &color(2)&";'><b>" & I &"</b></td>"
    else
      response.write "<td align='center' Style='color:#003399'>" & I &"</td>"
    end if
  intcount = intcount + 1
next

Sen kör jag med databas koppling:

SQL = "Select * from Hello where MONTH(str_date) = " &month(dtmDate)& " and year(str_date) = " &year(dtmDate)& ""
set recset = conn.execute(SQL)
if not recset.eof then
arrmonth = recset.getrows()

men hur gör jag nu så att OM det finns ett datum vid den månad i databasen så ska den bli en länk... blir ju en for sats men jag vet inte riktigt hur man ska göra det för att få in datan.

Medlem sedan nov. 20017 144 inlägg
#2

Skicka in dina datum i en array.

Dim dtmArray(31)
		
SQL = "Select str_date from Hello where MONTH(str_date) = " & month(dtmDate) & " and year(str_date) = " & year(dtmDate)& ""
set recset = conn.execute(SQL)
If not recset.eof Then arrmonth = recset.getrows()

If IsArray(arrmonth) Then
	For z = 0 To ubound(arrmonth,2)
		temp=day(arrmonth(0,z))
		dtmArray(temp) = "<a href=""?datum="& FormatDateTime(arrcalRS(0,z),2) &""">"& temp &"</a>"
	Next
End if

For i = 1 to intDays
  if intcount mod 7 = 0 And intcount > 0 Then response.write "</tr><tr>"
    If i = day(date()) And mdate = month(now()) And ydate = year(now()) Then
      response.write "<td align='center' style='background-color:" & color(2) &";'><b>" & dtmArray(i) &"</b></td>"
    Else
      response.write "<td align='center' Style='color:#003399'>" & dtmArray(i) &"</td>"
    End if
  intcount = intcount + 1
Next
Medlem sedan juni 20019 519 inlägg
#3

fungera nästan 100%... dock om man inte har något datum i databasen så skrivs den inte ut i huvudtaget..

Medlem sedan juni 20019 519 inlägg
#4

Kanske inte den bästa lösningen:

dim tal
for i = 1 to intDays
if len(dtmArray(i)) > 0 then
tal = dtmArray(i)
else
tal = i
end if
Medlem sedan nov. 20017 144 inlägg
#5

Du kan "förfylla" arrayen först i stället.

For a = 0 To intDays
    dtmArray(a) = a
Next

If IsArray(arrmonth) Then
...
Medlem sedan juni 20019 519 inlägg
#6

Fungera ännu bättre!

606 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
471 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
469 ms — ändringar (db)