Avatar billede kaptajnknas Nybegynder
04. december 2006 - 02:02 Der er 11 kommentarer og
1 løsning

Større og mindre end

Jeg roder lidt med en ligning på større end eller mindre end, virker ikke - hvad gør jeg forkert?

if ("" & rs("data") & "") < ("" & count & "") then
response.write ("Mindre")
end if
Avatar billede apo Praktikant
04. december 2006 - 02:09 #1
Det her burde gøre det:

Dim strData
strData = rs("data")

If strData < Count Then
  Response.Write "Mindre"
End If
Avatar billede kaptajnknas Nybegynder
04. december 2006 - 12:10 #2
Virker heller ikke
Avatar billede kaptajnknas Nybegynder
04. december 2006 - 12:49 #3
Det ser sådan ud.:

If ("" & rs("data") & "") > ("" & count & "") Then
response.write ("Mindre end sidst")
count = 0
end if

If ("" & rs("data") & "") < ("" & count & "") Then
response.write ("Mere end sidst")
count = 0
end if
Avatar billede apo Praktikant
04. december 2006 - 18:01 #4
Når du skriver "Virker heller ikke" - hvad mener du så?

Får du fejlmeddelelser? Virker det, men bare ikke som du ønsker det? eller hvad?

Jo mere du hjælper mig med at forstå, hvad der sker når du afprøver eksemplet, desto hurtigere får du løst problemet (jeg kan ikke se hvad der sker på din skærm - naturligvis).

Prøv at fjerne ("" & - da de ikke hører til dér, så dine if-sætninger ser således ud:

<%
If rs("data") > count Then
response.write ("Mindre end sidst")
count = 0
end if

If rs("data") < count Then
response.write ("Mere end sidst")
count = 0
end if
%>
Avatar billede kaptajnknas Nybegynder
04. december 2006 - 19:44 #5
Når det ikke virker får jeg ikke nogen fejl, bare ingen resultat ud.
If-sætningen er en del af et større script, hvor jeg prøver at finde ud af om en bruger er flyttet op eller ned på en liste.

Jeg viser her hele scriptet, det virker næsten hver gang, men af og til får jeg en forkert visning, hvor jeg måske rykker op på listen, viser scriptet at den går ned og omvendt.
Som sagt er det kun nogen gange??
Har netop prøvet at fjerne ("" & men der får jeg slet ingen resultat ud.

Har jeg overset noget, eller skal det laves på en helt anden måde?

<%
brugt = 0
rang = 0
countstop = 0
Set rs = Conn.Execute("SELECT * FROM bruger WHERE ORDER BY SCORE DESC")
if not rs.eof then
do while not rs.eof
if rs("brugernavn") = session("brugernavn") then
rang = rang + 1
countstop = ("" & rang & "")
if ("" & rang & "") = "1" then
response.write(" placering " & rang & "<img border=""0"" src=""image/1.gif"">")
else
response.write(" placering " & rang & "")
end if
else
rang = rang + 1
end if
rs.movenext
loop
end if

Set rs = Conn.Execute("SELECT * FROM bruger WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'")

if ("" & countstop & "") = ("" & rs("rang") & "") AND ("" & brugt & "") = "0" then
if rs("rangsys") = "1" then
response.write ("<img border=""0"" src=""image/down.gif"">")
end if
if rs("rangsys") = "2" then
response.write ("<img border=""0"" src=""image/up.gif"">")
end if
end if

If ("" & rs("rang") & "") < ("" & countstop & "") AND ("" & brugt & "") = "0" Then
response.write ("<img border=""0"" src=""image/down.gif"">")
Conn.execute "UPDATE bruger SET rang = '" & countstop & "' WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'"
Conn.execute "UPDATE bruger SET rangsys = '1' WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'"
brugt = 1
end if

If ("" & rs("rang") & "") > ("" & countstop & "") AND ("" & brugt & "") = "0" Then
response.write ("<img border=""0"" src=""image/up.gif"">")
Conn.execute "UPDATE bruger SET rang = '" & countstop & "' WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'"
Conn.execute "UPDATE bruger SET rangsys = '2' WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'"
brugt = 1
end if
end if
%>
Avatar billede apo Praktikant
04. december 2006 - 20:18 #6
Men, har du prøvet at fjerne _alle_:

("" &

og

& "")

fra _alle_ dine if-statements, som vist herunder?


<%
brugt = 0
rang = 0
countstop = 0
Set rs = Conn.Execute("SELECT * FROM bruger WHERE ORDER BY SCORE DESC")
if not rs.eof then
    do while not rs.eof
        if rs("brugernavn") = session("brugernavn") then
            rang = rang + 1
            countstop = ("" & rang & "")
            if rang = "1" then
                response.write(" placering " & rang & "<img border=""0"" src=""image/1.gif"">")
            else
                response.write(" placering " & rang & "")
            end if
        else
            rang = rang + 1
        end if
        rs.movenext
    loop
end if

Set rs = Conn.Execute("SELECT * FROM bruger WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'")

if countstop = rs("rang") AND brugt = "0" then
    if rs("rangsys") = "1" then
        response.write ("<img border=""0"" src=""image/down.gif"">")
    end if
    if rs("rangsys") = "2" then
        response.write ("<img border=""0"" src=""image/up.gif"">")
    end if
end if

If rs("rang") < countstop AND brugt = "0" Then
    response.write ("<img border=""0"" src=""image/down.gif"">")
    Conn.execute "UPDATE bruger SET rang = '" & countstop & "' WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'"
    Conn.execute "UPDATE bruger SET rangsys = '1' WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'"
    brugt = 1
end if

If rs("rang") > countstop AND brugt = "0" Then
    response.write ("<img border=""0"" src=""image/up.gif"">")
    Conn.execute "UPDATE bruger SET rang = '" & countstop & "' WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'"
    Conn.execute "UPDATE bruger SET rangsys = '2' WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'"
    brugt = 1
end if
%>

Jeg har lavet indrykninger, så din kode bliver mere overskuelig.
Avatar billede kaptajnknas Nybegynder
04. december 2006 - 20:30 #7
Nej, uden fortegn for jeg overhoved ingen resultat ud :-(
Avatar billede kaptajnknas Nybegynder
04. december 2006 - 23:22 #8
Ja jeg har prøvet at fjerne alle ("" &
Avatar billede kaptajnknas Nybegynder
05. december 2006 - 09:08 #9
Er der virkelig ingen af jer mange eksperter der kan se om denne kode er i orden, eller om man bør lave det på en helt anden måde?
Avatar billede kaptajnknas Nybegynder
05. december 2006 - 19:21 #10
Det undre mig meget, at der ikke er nogen her på eksperten der kan finde ud af dette problem.
Men der er vel en grænse for enhver ekspert?

Lukker Spg.
Avatar billede apo Praktikant
05. december 2006 - 20:02 #11
Jo bedre man er til at forklare et specifikt problem, jo flere vil kunne forstå problemets karakter, og vil derved kunne hjælpe til med en løsning af problemet.

Ud fra dine forklaringer i spørgsmålet her, kan jeg ikke umiddelbart se at der skulle være problemer med den kode, jeg postede 04/12-2006 20:18:27 eller koden i mit første indlæg (som var et korrekt svar på dit indledende indlæg). Men det er svært at afgøre helt, når jeg ikke kan se hvilke kodedele du har udeladt her i spørgsmålet.

Du mangler f.eks. at kalde (og lukke) din database i koden, hvilket jeg sagtens kan se, men jeg går/gik ud fra at du gjorde det via en include-fil - det er der mange der gør.

Hvis du ikke er klar over det, åbner man f.eks. en Access-database således:

Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; PWD=; DBQ=" & Server.MapPath("../database/etellerandet.mdb")

_inden_ man indsætter:

Set rs = Conn.Execute("SELECT * FROM bruger WHERE ORDER BY SCORE DESC")

Men det kan gøres på forskellige måder, og er ikke altid lige til at gennemskue hvordan det er gjort, medmindre at spørgsmålopretteren sørger for at poste _al_ relevant kode.

Som jeg tidligere skrev, kan jeg (eller andre) ikke se hvad der foregår på din skærm. Så hvis du en anden gang vil have at andre skal hjælpe dig, bør du:

1. Begynde et spørgsmål med at se på hvordan _du_ kan hjælpe andre med at _forstå_ problemet - Hjælp til selvhjælp.

2. Have tålmodighed - nogle spørgsmål kan ikke løses på lige over 24 timer, især ikke hvis problemet er utydeliggjort af spørgsmålopretteren.
Avatar billede kaptajnknas Nybegynder
05. december 2006 - 20:26 #12
Hej igen og tak for dit svar.

Jo. jeg både åbner og lukker databaseforbindelsen, ingen problem :-)
Men somjeg skrev >> 04/12-2006 19:44:59

If-sætningen er en del af et større script, hvor jeg prøver at finde ud af om en bruger er flyttet op eller ned på en rangliste.

Jeg viser her hele scriptet, det virker næsten hver gang, men af og til får jeg en forkert visning, hvor jeg måske rykker op på listen, viser scriptet at den går ned og omvendt.
Som sagt er det kun nogen gange at scriptet fejler med en forkert visning??
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