02. juli 2001 - 21:06Der er
16 kommentarer og 2 løsninger
Databaseopdatering en enkelt gang
Jeg har en database jeg gerne vil have ændret en værdi i via ASP på følgende måde:
Når den første bruger logger sig ind på siden torsdag skal et link ændres. Næste gang en bruger logger ind skal der ikke ske noget, før næste torsdag igen hvor linket skal ændres tilbage igen. Sådan skal der køres i en uendelig løkke. Så der hver uge ved overgangen til torsdag skiftes imellem to forskellige links Hvordan laver jeg rent praktisk det, skal det evt. gemmes i en database? Jeg vil gerne bede om en beskrevet løsning da jeg gerne vil lære lidt af svaret også.
Hmm, jeg havde engang noget i PHP der lignede. Noget i retning af:
1) Find en eller anden torsdag engang i fortiden. 2) Beregn antal sekunder fra denne torsdag tilbage til verdens skabelse 1/1-1970 3) Når brugeren logger ind, tager du det aktuelle antal sekunder siden verdens skabelse, og trækker tallet fra 2) fra 4) Så dividerer du med antal sekunder i en hel uge. 5) Og hvis det tal er lige viser du det ene link, og hvis det er ulige det andet link
Det lyder umiddelbart meget simpelt, men jeg har brugt et godt stykke tid til at tænke over det uden at komme frem til noget brugbart. Linket må jo ikke skifte næste gang en bruger logger ind senere på torsdagen...
med DatePart(\"ww\", date, 2, 2) kan jeg få returneret ugenummeret efter dansk system med udgangs i mandag går jeg ud fra, men hvordan får jeg det returneret med torsdag som udgangspunkt for så er mit problem løst...
hmm, det første af 2 tallerne betyder mandag, så det kan du jo ændre til et 5 tal. Men det løser vel ikke dit problem omkring årsskiftet, hvor uge 53 kan afløses af uge 1.
Årsskiftet er ikke noget problem det der jo også der skifter fra et lige ugenummer til et ulige, så det er lige meget i min situation det vigtigste er blot at skiftet forgår med udgangspunkt i torsdag. Hvis vi havde haft 53 uger i året havde der været et problem...
Jamen, du har jo sommetider 53 uger i året. Er det et problem når det indtræffer eller er det ikke?
Nu er jeg bestemt ingen haj til ASP, men jeg har prøvet at se om man kan få antal sekunder siden 1970 på en nem måde (som man kan i PHP), og sandt for dyden kan jeg ikke finde det. Mystisk platform, det her ASP...:)
Jeg var ikke klar over at der i nogle år fandtes 53 uger men min kæreste har lige bekræftet din mistanke. Jeg skal lige tænke over det men det må være et problem der er til at løse, ellers må jeg bare overtage styringen manuelt i den ene gang i et årti hvor det er tilfældet med 53 uger...
Jeg skal desværre til og i seng nu, men hvis du lige smider et par linjer om hvad time() funktionen gør/returnere i PHP så skal jeg se om jeg kan finde noget tilsvarende til ASP til imorgen...
Prøv at køre denne test (hvis dine datoformater passer), kan du se at der kommer 0-er i hveranden uge og 1-er i de andre:
gammeltorsdag=datediff(\"d\",\"1/1-1970\",\"28/6-2001\") enellerandendag = cdate(\"28/6-2001\") for i=1 to 200 dage = datediff(\"d\",\"1/1-1970\",enellerandendag)-gammeltorsdag v = int(dage/7) mod 2 response.write enellerandendag & \" \" & v & \"<br>\" enellerandendag=dateadd(\"d\",1,enellerandendag) next
Dvs. Du skulle kunne lave denne kode
v=int((datediff(\"d\",\"1/1-1970\",date)-datediff(\"d\",\"1/1-1970\",\"28/6-2001\"))/7) mod 2 if v=0 then ...det ene link else ...det andet link end if
eller simplere kommer jeg til at tænke på:
v=int(datediff(\"d\",\"28/6-2001\",date)/7) mod 2 if v=0 then ...det ene link else ...det andet link end if
Jeg tror jeg beholder min egen løsning da jeg gerne vil kende ugenummret også... I øvrigt er der først 53 uger i året i år 2004 og igen i år 2009 og der er min side sikkert forlængst forældet alligevel, så jeg vil ikke tage det så tungt. Har dog alligevel sat mit kalenderprogram til at give besked om at huske og ændre i koden op til nytårsaften år 2004...
Tak endnu engang for hjælpen jeg synes nu alligevel du får en slat point for hjælpen...
:) Fint nok - jeg havde helt glemt datediff, og at den måske nok kan bruges til noget fornuftigt en gang imellem.
Synes godt om
Ny brugerNybegynder
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.