Hej och hallå,
Sitter här och sliter med DateDiffen... :l
Det jag vill göra är att räkna ut hur länge man har varit inne på en sida. Har letat runt efter ett svar, men hittar inget som stämmer med det jag undrar. Jag vill jämföra tiden mellan Session("start_tid") och tiden när sessionen avslutas.
Skriver in denna kod i Session_onEnd i global.asa:
conn.Execute("INSERT INTO tblTiden (start_in,slut_ut,besoksTid) VALUES ('" & Session("start_tid") & "','" & now & "','" & datediff("s", Session(start_tid), now)"')")
Och får det här felet:
Kompileringsfel i Microsoft VBScript (0x800A03EE)
')' förväntas.
/examensjobb/examensjobb/global.asa, line 61, column 161
conn.Execute("INSERT INTO tblTiden (start_in,slut_ut,besoksTid) VALUES ('" & Session("start_tid") & "','" & now & "','" & datediff("s", Session(start_tid), now)"')")
Någon som vet?
@ndersMedlem sedan juni 200032 969 inlägg När Session_OnEnd körs är alla sessionsvariabler döda, och det enda du har att tillgå är Session.SessionID.
Du måste nog vid sessionens start sätta in Sessions-id:t och starttid i tabellen, och bara lägga in slut-tid vid session_onend.
mvh
Ja fast grejjen är den om jag väljer att till exempel lagra ett värde istället för att räkna ut datediff så funkar det. Den känner alltså av vad klockan var på Session("start_tid") så därför tycker jag ju att det borde gå att räkna ut skillanden mellan start_tid och "now". Det jag oxå undrar över är om jag ska hämta in värdet från RS i db eller om man ska anropa Session("start_tid")?
@ndersMedlem sedan juni 200032 969 inlägg
Den känner alltså av vad klockan var på Session("start_tid")
Du menar alltså att du har tillgång till den sessionsvariabelns värde i session_onend?
Det skulle kunna vara så att jag har fel när jag tänker efter. Det kan vara så att värdena finns där tills _onend har körts klart. Det är helt klart allt för länge sedan jag pysslade med sånt här. :l
Dåså, då gäller det bara att se till att hålla koll på parenteser, apostrofer och citationstecken i din SQL-fråga så kanske det trots allt fungerar? Så här bör det se ut:
conn.Execute("INSERT INTO tblTiden (start_in,slut_ut,besoksTid) VALUES ('" & Session("start_tid") & "','" & now & "','" & datediff("s", Session(start_tid), now) & "')")
Mvh
Tusen hjärtlig tack, det fungerade! Men... då kommer det såklart en ny fråga ;)
Det som lagras nu är ju en massa siffror... Kan man omvandla dom till typ "riktiga" sekunder om du förstår hur jag menar...?
@ndersMedlem sedan juni 200032 969 inlägg De där "massa sifforna" är väl riktiga sekunder?
:) Jo det är det säkert men i min db så står dom här siffrona: "3275987098" men så länge har jag inte varit inne på sidan utan jag har varit där i max 30 sekunder, så då undrar jag vad dom siffrona står för lixom...
@ndersMedlem sedan juni 200032 969 inlägg De står i så fall för ingenting. Har du varit inne på sidan i 30 sekunder så ska det stå 30 i tabellen.
Exakt vad innehåller session("start_tid")? Jag är fortfarande inne på att den kan vara tom. ;)
Logga värdet till textfil i global.asa (eller kanske till och med logga hela SQL-frågan, så ser du vad som körs).
Mvh
Jo men det finns ju ett värde, för när jag kollar i db så har den lagrat in-tiden och den lagrar ut-tiden, så något slags värde måste det ju finnas.
@ndersMedlem sedan juni 200032 969 inlägg Hur ser värdet ut? Prova att typkonvertera med cdate i SQL-frågan om det är ett korrekt datum/tid-värde.
Okej, now you lost me... Hur gör jag det? Hur får jag in en typkonverterare i den sql-frågan?
Värdet är ett "now" värde alltså tex "2003-10-22 13:13:22"
@ndersMedlem sedan juni 200032 969 inlägg conn.Execute("INSERT INTO tblTiden (start_in,slut_ut,besoksTid) VALUES ('" & Session("start_tid") & "','" & now & "','" & datediff("s", CDate(Session("start_tid")), now) & "')")
Iofs behöver du ju inte räkna ut antalet sekunder när du sparar datat, du kan ju bara lite snabbt räkna ut det när du ska visa upp det. Om du vill.
Mvh
@ndersMedlem sedan juni 200032 969 inlägg Aha!
Nu förstår jag varför det blir som det blir!
I SQL-frågan (datediff-delen) står det Session(start_tid). Där ska givetvis stå Session("start_tid"). :D
Mvh
Du e en klippa! Har någon sagt det till dig i det sista? :)
Tack så väldigt mycket för hjälpen. Nu kan jag äntligen se hur länge en besökare varit inne på en sida. Tack!
@ndersMedlem sedan juni 200032 969 inlägg
Maggan74 skrev:
Du e en klippa! Har någon sagt det till dig i det sista? :)
Tack så väldigt mycket för hjälpen. Nu kan jag äntligen se hur länge en besökare varit inne på en sida. Tack!
:r
Varsågod och god lycka med resten!
Mvh
Ha ha ja det kommer nog att behövas, jag dyker nog snart upp igen misstänker jag... ;)