19. februar 2003 - 18:32Der er
13 kommentarer og 3 løsninger
Indsæt en dato i en sorteret dato-streng
Hej
Jeg har nogle kode, som henter nogle datoer op fra databasen og smider dem sorteret ind i en dropdown-box. Nu vil jeg også gerne, at der tilføjes en enkelt dato, som også skal blive indsat, så dropdown-boxen stadig er sorteret (altså så den ekstra dato bliver indsat i de eksisterende datoer, så de stadig er sorteret).
Det er underordnet for mig, hvor i forløbet den ekstra dato smides ind. Omhandlende ekstra dato findes i: Session("henvisningDatoPublikation")
_______________________________________
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 >= #" & Year(date) & "-" & month(date) & "-" & Day(date) & "# AND datopublish < #" & Year(dateadd("yyyy",1,date)) & "-" & month(dateadd("yyyy",1,date)) & "-" & Day(dateadd("yyyy",1,date)) & "# 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,",")
dato = date () datoSlut = DateAdd("yyyy",1,date) i = 0 do while dato <= datoSlut if CDate(myDateArr(i)) <> CDate(dato) then 'if i = 0 then 'Response.Write "<option selected value=""" & dato & """>" & dato & "</option>" 'else Response.Write "<option value=""" & dato & """>" & dato & "</option>" 'end if else i = i + 1 if i > ubound(myDateArr) then i = ubound(myDateArr) end if dato = dateAdd("d",1,dato) loop response.write "</select></p>"
Brug af AI afslører de svagheder, virksomheder allerede har opbygget gennem års cloud-transformation, nye SaaS-løsninger og fragmenterede sikkerhedssystemer.
Du skal havde lagt datoen ind i listen med datoer. Så du skal tjekke på om den er større eller mindre end den dato som er i recordsetet alt efter om du sortere stigene eller faldene..:
datoSatInd = false do while not rs.EOF if datoSatInd = false AND CDate(Session("henvisningDatoPublikation")) < CDate(rs("datopublish")) then myDates = myDates & Session("henvisningDatoPublikation") & ", " datoSatInd = true end if if isDate(rs("datopublish")) then myDates = myDates & rs("datopublish") & ", " End If rs.MoveNext Loop 'Hvis daoten ikke er sat ind endnu tilføj efter sidste dato. if datoSatInd = false then myDates = myDates & Session("henvisningDatoPublikation") & ", " end if
Eks vil virker hvis du ekvis har denne liste med datoer: 03-01-2003 05-01-2003 06-01-2003
Er det módsat sortering så prøv denne hvor < er vendt til >
datoSatInd = false do while not rs.EOF if datoSatInd = false AND CDate(Session("henvisningDatoPublikation")) > CDate(rs("datopublish")) then myDates = myDates & Session("henvisningDatoPublikation") & ", " datoSatInd = true end if if isDate(rs("datopublish")) then myDates = myDates & rs("datopublish") & ", " End If rs.MoveNext Loop 'Hvis daoten ikke er sat ind endnu tilføj efter sidste dato. if datoSatInd = false then myDates = myDates & Session("henvisningDatoPublikation") & ", " end if
Eks vil virker hvis du ekvis har denne liste med datoer: 06-01-2003 05-01-2003 03-01-2003
>>eagleeye Åhhh, jeg har udtrykt mig uklart. Min skyld...
Du har læst mit indlæg, som om, at der skulle tilføjes en dato til mydates, faktisk var datoen allerede i mydates, og derved kom den ikke til syne i dropdown-boxen. (Fordi dropdown-boxen kun viser de datoer, som ikke findes i mydates).
Så jeg prøver lige igen. Et eller andet sted i forløbet, skal den dato, som ligger i Session("henvisningDatoPublikation"), slettes fra mydates, hvorved den kommer til syne i dropdown-boxen.
(Jeg for fordobler lige pointene, så I ikke føler at jeres arbejde er spildt).
>>somaliomar Således... hvis du med dit script ønsker at fjerne den dato, som findes Session("henvisningDatoPublikation", er du på rette vej. Hvorimod hvis du som eagleeye tilføjer den, så er du ikke på rette vej (som omtalt ovenstående). Datoen skal såmen bare slettes, så den kommer tilsyne i dropdown-boxen.
_______________
Set myConn=Server.CreateObject("ADODB.Connection") myConn.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="+server.Mappath("/db/selvet.mdb"))
strExtraDato = Session("henvisningDatoPublikation") strSQL = "SELECT #" & strExtraDato & "# As datopublish FROM search UNION " strSQL = strSQL & "SELECT DISTINCT datopublish FROM search WHERE datopublish >= #" & Year(date) & "-" & month(date) & "-" & Day(date) & "# AND datopublish < #" & Year(dateadd("yyyy",1,date)) & "-" & month(dateadd("yyyy",1,date)) & "-" & Day(dateadd("yyyy",1,date)) & "# 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,",")
dato = date () datoSlut = DateAdd("yyyy",1,date) i = 0 do while dato <= datoSlut if CDate(myDateArr(i)) <> CDate(dato) then 'if i = 0 then 'Response.Write "<option selected value=""" & dato & """>" & dato & "</option>" 'else Response.Write "<option value=""" & dato & """>" & dato & "</option>" 'end if else i = i + 1 if i > ubound(myDateArr) then i = ubound(myDateArr) end if dato = dateAdd("d",1,dato) loop response.write "</select></p>"
Du skriver, at datoen Session("henvisningDatoPublikation") er med i dropdown-listen. Det, du vil er, at du vil fjerne datoen fra dropdown-listen. Er det det du vil??
if not myDates = "" then myDates = left(myDates,len(myDates)-2) end if
myDateArr = Split(myDates,",")
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 response.write "</select></p>"
>Det, du vil er, at du vil fjerne datoen fra dropdown-listen. Er det det du vil?? Nej, det skal godt nok fjernes men ikke fra dropdown-boxen (for der findes den ikke i forvehen). Den skal i stedet fjernes fra mydates, hvorved den kommer til syne i dropdown-boxen. Dropdown-boxen viser kun de datoer, som ikke findes i mydates.
if not myDates = "" then myDates = left(myDates,len(myDates)-2) end if
myDateArr = Split(myDates,",")
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 response.write "</select></p>"
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.