Avatar billede zeusdk Nybegynder
24. december 2002 - 13:39 Der er 2 kommentarer og
2 løsninger

Datoer

Hej

Jeg har et script, som går ned i databasen og laver en sorteret streng bestående af datoer - starten fra i morgen og et år frem - som tidligere er blever reserveret. Og det virker fint. Sådan ser strengen ud:

24/12/2002, 26/12/2002, 27/12/2002, 30/12/2002

Nu mangler jeg bare, at scriptet finder de datoer, som ikke er listet i strengen og smider dem op i en dropdown-box. Derved kan man i dropdown-boxen vælge de datoer, som endnu ikke er blevet reserevet.

De ikke-reserverede dato, som kunne vælges i dropdown-boxen, skal starte fra i morgen til et år frem.

<%
    Set myConn=Server.CreateObject("ADODB.Connection")
    myConn.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="+server.Mappath("/db/selvet.mdb"))
    strSQL = "Select distinct datopublish from search where (datopublish between #" & Date() + 1 & "# and #" & Date() + 364 & "#) order by datopublish"
    set rs = myConn.execute(strSQL)
   
    do while not rs.EOF
        if isDate(rs("datopublish")) then
            myDates = myDates & rs("datopublish") & ", "
        End If
    rs.MoveNext
    Loop
   
    if not myDates = "" then
        myDates = left(myDates,len(myDates)-2)
    end if
%>
Avatar billede eagleeye Praktikant
24. december 2002 - 13:56 #1
Så prøv med dette hvor du laver select/drop down boksen:

<%
myDates = "24/12/2002, 26/12/2002, 27/12/2002, 30/12/2002"
myDateArr = Split(myDates,",")
%>
<select name="test">
<%
dato = date
datoSlut = DateAdd("yyyy",1,date)
i = 0
do while dato <= datoSlut
  if CDate(myDateArr(i)) <> CDate(dato) then
    Response.Write "<option value=""" & dato & """>" & dato & "</option>"
  else
    i = i + 1
    if i > ubound(myDateArr) then i = ubound(myDateArr)
  end if
  dato = dateAdd("d",1,dato)
loop
%>
</select>
Avatar billede zeusdk Nybegynder
24. december 2002 - 14:51 #2
Jeg rette det lidt til, og så virkede det :-) Kan jeg ikke også få dig til at udbygge koden efter følgende princip:

Hvis der er mere end 50 reserverede datoer (altså hvis dato-strengen har en vis længde eller noget lignende kan konstateres), skal det være muligt at reserverere en dato op til 2 gange. Og hvis der er mere end 100 datoer, skal det være muligt at reservere en dato op til 3 gange... 150 = 4, 200 = 5 osv.

______________________________________________________________________

<%
    Set myConn=Server.CreateObject("ADODB.Connection")
    myConn.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="+server.Mappath("/db/selvet.mdb"))
    strSQL = "Select distinct datopublish from search where (datopublish between #" & Date() + 1 & "# and #" & Date() + 364 & "#) order by datopublish"
    set rs = myConn.execute(strSQL)
   
    do while not rs.EOF
        if isDate(rs("datopublish")) then
            myDates = myDates & rs("datopublish") & ", "
        End If
    rs.MoveNext
    Loop
   
    if not myDates = "" then
        myDates = left(myDates,len(myDates)-2)
    end if

myDateArr = Split(myDates,",")
%>

<select name="datoPublikation" style="font-size: 10pt; font-family: Trebuchet MS">

<%
dato = date () + 1
datoSlut = DateAdd("yyyy",1,date)
i = 0
do while dato <= datoSlut
  if CDate(myDateArr(i)) <> CDate(dato) then
    Response.Write "<option value=""" & dato & """>" & dato & "</option>"
  else
    i = i + 1
    if i > ubound(myDateArr) then i = ubound(myDateArr)
  end if
  dato = dateAdd("d",1,dato)
loop
%>
Avatar billede eagleeye Praktikant
24. december 2002 - 15:00 #3
Jeg ved ikke helt hvordan det skal med i koden at man kan vægle e dato 2,3 eller 4 gange.. men du kan finde antallet af dato i listen med dette

antal = ubound(myDateArr)

Så det kan sættes ind efter denne:

myDateArr = Split(myDates,",")
antal = ubound(myDateArr)

så kan man tjekke på antallet:

if antal > 50 then
 
end if
if antal > 100 then

end if

ovs..
Avatar billede zeusdk Nybegynder
24. december 2002 - 15:41 #4
Mange tak for hjælpen - så vil jeg i gang med at programmere med den sidste stump kode, som du har givet mig.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester