Avatar billede jps6kb Novice
17. januar 2006 - 11:17 Der er 3 kommentarer og
1 løsning

Mærkelig dato ved årsskifte

Hej,

Jeg har lavet et meget simpelt statistik system for min webside.
Men efter vi skrev 2006 virkede den ikke længere.. nu gør den dog.. delvist.
De sidste 4 dage kan den godt finde ud af, men derfra og så til og med 1/1-2006 viser den 0.
Jeg har en anden side som udskriver de besøg jeg har haft med dato, og der er mindst 4 på en dag, HVER dag.. men alligevel skriver den nul ved 7dage og 14dage.

Her er min kode..



<%
    Set rs = Server.CreateObject ("ADODB.Recordset")
    rs.Open "SELECT TOP 1 * From VisitLog ORDER BY id desc", MyConn
    todayDateDb = rs("dato")
%>
DB MAX DATE : <% = todayDateDb %><br/>
<h2>I DAG</h2>
<%
    tdate = Date()
       
    set todayTotal = Myconn.execute("SELECT count(*) as varTodayCount FROM VisitLog WHERE dato = #"& tdate &"#")

    Set dataToday = Server.CreateObject ("ADODB.Recordset")
    dataToday.Open "SELECT * From VisitLog WHERE dato = #"& tdate &"# ORDER BY ip", MyConn
    tmpIp = ""
    tmpTodayCount = 0

    while NOT dataToday.EOF
        if dataToday("ip") <> tmpIp Then
            tmpIp = dataToday("ip")
            tmpTodayCount = tmpTodayCount + 1
        end if
    dataToday.MoveNext
    Wend



%>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unik: <% = tmpTodayCount %><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Total: <% = todayTotal("varTodayCount") %><br/>

<h2>I GÅR</h2>

<%
    tdate = Date() - 1
    set rsTotalCount = Myconn.execute("SELECT count(*) as varResult FROM VisitLog WHERE dato = #"& tdate &"#")

    Set rs = Server.CreateObject ("ADODB.Recordset")
    rs.Open "SELECT * From VisitLog WHERE dato = #"& tdate &"# ORDER BY ip", MyConn
    tmpIp = ""
    tmpCount = 0

    while NOT rs.EOF
    if rs("ip") <> tmpIp Then
        tmpIp = rs("ip")
        tmpCount = tmpCount + 1
    end if
    rs.MoveNext
    Wend
%>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unik: <% = tmpCount %><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Total: <% = rsTotalCount("varResult") %><br/>


<h2>7 DAGE</h2>
<%
    tdate = Date() - 7
       
    set todayTotal = Myconn.execute("SELECT count(*) as varTodayCount FROM VisitLog WHERE dato > #"& tdate &"#")

    Set dataToday = Server.CreateObject ("ADODB.Recordset")
    dataToday.Open "SELECT * From VisitLog WHERE dato > #"& tdate &"# ORDER BY ip", MyConn
    tmpIp = ""
    tmpTodayCount = 0

    while NOT dataToday.EOF
        if dataToday("ip") <> tmpIp Then
            tmpIp = dataToday("ip")
            tmpTodayCount = tmpTodayCount + 1
        end if
    dataToday.MoveNext
    Wend

    Set rs = Server.CreateObject ("ADODB.Recordset")
    rs.Open "SELECT TOP 1 * From VisitLog ORDER BY id desc", MyConn
    todayDateDb = rs("dato")

%>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unik: <% = tmpTodayCount %><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Total: <% = todayTotal("varTodayCount") %><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ref. date: <% = tdate %><br/>



<h2>14 DAGE</h2>

<%
    tdate = Date() - 14
    set rsTotalCount = Myconn.execute("SELECT count(*) as varResult FROM VisitLog WHERE dato > #"& tdate &"#")

    Set rs = Server.CreateObject ("ADODB.Recordset")
    rs.Open "SELECT * From VisitLog WHERE dato > #"& tdate &"# ORDER BY ip", MyConn
    tmpIp = ""
    tmpCount = 0

    while NOT rs.EOF
    if rs("ip") <> tmpIp Then
        tmpIp = rs("ip")
        tmpCount = tmpCount + 1
    end if
    rs.MoveNext
    Wend
%>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unik: <% = tmpCount %><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Total: <% = rsTotalCount("varResult") %><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ref. date: <% = tdate %><br/>



Det her er bare lige en test jeg har lavet, så koden er vist lidt rodet. :)
Avatar billede jps6kb Novice
17. januar 2006 - 11:34 #1
dato feltet i VisitLog tabellen er af typen Dato. Det er en Access db.. ;)
Avatar billede lund_dk Praktikant
17. januar 2006 - 15:10 #2
Jeg tror det er dit dato format den er gal med. Du siger 4 dage tilbage vil den godt, dvs til d. 13.
Og mellem 1 - 12. vil den ikke.
Jeg tror den bytter om på det, så i stedet for at få
2-12-2006 - så skriver den i stedet 12-2-2006

Altså, bytter om på måned og dag
Avatar billede jps6kb Novice
17. januar 2006 - 15:16 #3
Jeg tænkte også på om det kunne være sådan noget.. men det står rigtigt, for mig at se, i databasen.
Kan ASP lave fejl?

Det står i db'en sådan her:

31-12-2005
31-12-2005
31-12-2005
01-01-2006
01-01-2006
02-01-2006
01-01-2006
03-01-2006
05-01-2006
12-01-2006
16-01-2006

Bare et eksempel.. for overskuelighedens skyld..
Avatar billede jps6kb Novice
18. maj 2006 - 14:48 #4
.. og det var så en selvhenter. ;)
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