Avatar billede sune.jakobsen Nybegynder
02. juli 2001 - 21:06 Der 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å.

På forhånd tak....
Avatar billede sune.jakobsen Nybegynder
02. juli 2001 - 21:07 #1
UPS, jeg tror da vist at overskriften var lidt misvisende....
Avatar billede erikjacobsen Ekspert
02. juli 2001 - 21:11 #2
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
Avatar billede sune.jakobsen Nybegynder
02. juli 2001 - 21:15 #3
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...
Avatar billede sune.jakobsen Nybegynder
02. juli 2001 - 21:51 #4
Jeg smider lige en halvtredser mere i puljen, for jeg skal bruge det svar...
Avatar billede sune.jakobsen Nybegynder
02. juli 2001 - 22:57 #5
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...
Avatar billede erikjacobsen Ekspert
02. juli 2001 - 23:14 #6
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.
Avatar billede sune.jakobsen Nybegynder
02. juli 2001 - 23:16 #7
date1 = date + 3
response.write date1 & \"<br><br>\"
response.write DatePart(\"ww\", date1, 2, 2)

Sådan gøres dette, men hvordan tjekker jeg om tallet jeg får smidt ud er lige eller ulige, det må det der være nogen der kan hjælpe med...
Avatar billede sune.jakobsen Nybegynder
02. juli 2001 - 23:22 #8
Å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...
Avatar billede erikjacobsen Ekspert
02. juli 2001 - 23:28 #9
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...:)
Avatar billede sune.jakobsen Nybegynder
02. juli 2001 - 23:30 #10
If (uge mod 2) = 1 Then
Skriv = \"ulige\"
Else
Skriv = \"lige\"
End If
response.write Skriv

Der var løsningen på det sidste af mine problemer, men ellers tak for hjælpen alle sammen...
Avatar billede sune.jakobsen Nybegynder
02. juli 2001 - 23:31 #11
EricJacobsen>> Tak for indsatsen jeg smider lige en halvtredser til dig som tak for hjælpen men resten tager jeg selv... Er det OK?
Avatar billede erikjacobsen Ekspert
02. juli 2001 - 23:33 #12
Nu har du jo ikke brugt noget jeg har foreslået, så nej tak til point

Men er uge 53 ikke et problem ??
Avatar billede sune.jakobsen Nybegynder
02. juli 2001 - 23:44 #13
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...
Avatar billede erikjacobsen Ekspert
02. juli 2001 - 23:48 #14
Smart kæreste :)  Ja, det kan man gøre manuelt, for så kan man bytte om
på lige og ulige, når det sker.

Hvis en kyndig person ellers kan fortælle mig hvordan man i ASP laver det
der hedder time()  i PHP kan vi lave dig en idiotsikker løsning!
Avatar billede sune.jakobsen Nybegynder
02. juli 2001 - 23:52 #15
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...

Sov godt og tak igen...
Avatar billede erikjacobsen Ekspert
03. juli 2001 - 00:05 #16
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

Avatar billede sune.jakobsen Nybegynder
03. juli 2001 - 16:16 #17
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...
Avatar billede erikjacobsen Ekspert
03. juli 2001 - 21:09 #18
:) Fint nok  -  jeg havde helt glemt datediff, og at den måske nok kan bruges til
noget fornuftigt en gang imellem.
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