Avatar billede inkognito1 Nybegynder
20. juli 2002 - 00:44 Der er 1 kommentar og
1 løsning

Går galt når der deles med et ulige tal ???

Håber en kan komme med en løsning på dette problem. Der opstår det mærkeligste problem ved nedenstående kode. Jeg laver en statisk over nogle besøg på nogle sider. Det er sådan at siderne er tilmeldt på forskllige dato og med denne kode tager jeg gennemsnittet de sidste 7 dage. Når antal af dage er et ulige tal eksempelvis 3 dage så går det helt galt. Det ser totalt mærkeligt ud. Hvad dælen kan være årsagen hertil ??? (Alt virker perfekt når det tal jer deler med er et lige tal eksempelvis 4)

Det er værdien d i skal kigge efter i koden.

<%
Set myConn = Server.CreateObject("ADODB.Connection")
myconn.Open("Provider=SQLOLEDB; Data Source=120.120.120.120; Initial Catalog=counter; User ID=user; Password=password;")
strSQL = "SELECT site, tilmeld FROM count INNER JOIN sites ON count.site = sites.idnr ORDER BY count.site"

Set rs = myConn.Execute(strSQL)
site = ""
c = 0
do while not rs.eof
    if rs(0) <> site then
        c = c + 1
    end if
    rs.movenext
loop
rs.movefirst
redim tabel(c,3)
%>
<%
site = ""
c = 0
do while not rs.eof
    if rs(0) <> site then
        tabel(c, 0) = rs(0)
        tabel(c, 2) = rs(1)
        c = c + 1
        b = 0
    end if
    b = b + 1
    tabel(c-1,1) = b
    site = rs(0)
    rs.movenext
loop
for a = 0 to c
    if date() - tabel(a,2) > 7 then
        d = 7
    else
        d = Round(date() - tabel(a,2),0)
    end if
    if d = 0 then d = 1
    tabel(a,3) = tabel(a,1)/d
    response.write d
next
maxf = 100000
ens = 0
%>
<table border=1 bordercolor=#000000 cellspacing=0 cellpadding=4>
<%
for b = 0 to c - 1
    max = 0
    maxn = 0
    for a = 0 to c
        if tabel(a,3) > max and maxf > tabel(a,3) then
            max = tabel(a,3)
            maxn = a
        end if
        if tabel(a,3) = maxf and maxfn <> a then
            ens = ens + 1
            redim preserve nens(ens)
            nens(ens-1) = a
        end if
    next
    if ens > 0 then
        for e = 0 to ens-1
            response.write "<tr><td>" & tabel(nens(e),0) & "</td><td>" & tabel(nens(e),3) & "</td><td>" & tabel(nens(e),1) & "</td><td>" & ens & "</td></tr>"
            b = b + 1
        next
    end if
    response.write "<tr><td>" & tabel(maxn,0) & "</td><td>" & tabel(maxn,3) & "</td><td>" & tabel(maxn,1) & "</td><td>" & ens & "</td></tr>"
    ens = 0
    redim nens(0)
    maxf = max
    maxfn = maxn
next
%>
Avatar billede inkognito1 Nybegynder
20. juli 2002 - 00:45 #1
DETTE STYKKE:
----------------------
for a = 0 to c
    if date() - tabel(a,2) > 7 then
        d = 7
    else
        d = Round(date() - tabel(a,2),0)
    end if
    if d = 0 then d = 1
    tabel(a,3) = tabel(a,1)/d
    response.write d
next
--------------------
Men måske er det andensteds fejlen ligger.
Avatar billede inkognito1 Nybegynder
28. august 2003 - 20:18 #2
luk
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