webForumDet fria alternativet

Kalender & databas

ASP

5 svar · 450 visningar · startad av voigtann1

Medlem sedan juni 20019 519 inlägg
Frågan#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!

260 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)