Avatar billede Slettet bruger
19. august 2001 - 01:14 Der er 28 kommentarer og
1 løsning

instr

hvis jeg har en lykke, som køre igennem en database, hvorfor kan jeg så ikke sætte denne her ind mere end engang, for sætter jeg den ind 2 gange så går det galt.. hvorfor???


if instr(rs(\"action\"), \"disconnected\") Then
    Response.write rs(\"action\")
End if
Avatar billede thomas_regin Nybegynder
19. august 2001 - 01:17 #1
Hvad får du af fejl?

Thomas.
Avatar billede Slettet bruger
19. august 2001 - 01:19 #2
ikke rigtigt fejl.. men hvis der sidder to f.eks:

if instr(rs(\"action\"), \"disconnected\") Then
    Response.write rs(\"action\")
End if

if instr(rs(\"action\"), \"disconnected\") Then
    Response.write rs(\"action\") & \"test\"
End if

så sker der intet

Avatar billede Slettet bruger
19. august 2001 - 01:20 #3
Do while not rs.EOF

if instr(rs(\"action\"), \"disconnected\") Then
    Response.write rs(\"action\")
End if

if instr(rs(\"action\"), \"disconnected\") Then
    Response.write rs(\"action\") & \"test\"
End if
   
rs.movenext
loop



intet response.. den skriver intet
Avatar billede thomas_regin Nybegynder
19. august 2001 - 01:21 #4
Hmmm.. Hvad er årsagen til, at du skal bruge den samme funktion 2 gange??.. Teoretisk behøver du kun at køre funktionen igennem en enkelt gang!

Thomas.
Avatar billede Slettet bruger
19. august 2001 - 01:22 #5
endnu lidt mærkelige sager:


Do while not rs.EOF

if instr(rs(\"action\"), \"disconnected\") Then
    Response.write rs(\"action\")
End if

   
rs.movenext
loop


heller ikke noget.. men

Do while not rs.EOF

a = server.HTMLEncode(rs(\"action\"))

if instr(a, \"disconnected\") Then
    Response.write a
End if

   
rs.movenext
loop


så sker der noget :o)

help
Avatar billede Slettet bruger
19. august 2001 - 01:23 #6
ja men jeg skal sikre mig hvilken ting som står i feltet.. f.eks.


if instr(rs(\"action\"), \"disconnected\") Then
    Response.write rs(\"action\")
End if

if instr(rs(\"action\"), \"COMPLETED\") Then
    Response.write rs(\"action\") & \"test\"
End if
   


samme problem
Avatar billede thomas_regin Nybegynder
19. august 2001 - 01:26 #7
Ah.. Jeg ved godt hvorfor!..

Når du looper igennem som du gør her - 2 gange i det samme loop, så kan ASP jo ikke kende forskel på om det er første eller anden gang. Det er jo samme tekst du kører i gennem.

I en oversat sammenhæng har du jo faktisk spurgt:

1. Hvis der i variablen Action står Disconnected, så skriv variablen ud

2. Hvis der i variablen Action står Disconnected, så skriv variablen ud test

Problemet er jo bare, begge disse klausuler er sande hver gang at ordet \"disconnected\" er der.

Derfor skal du istedet skrive:

Do while not rs.EOF

if instr(rs(\"action\"), \"disconnected\") Then
    Response.write rs(\"action\")
ELSE
    Response.write rs(\"action\") & \"test\"
End if
   
rs.movenext
loop

Thomas.

Avatar billede Slettet bruger
19. august 2001 - 01:29 #8
men nu er der mange andre kommandoer i basen, som ikke skal bruges.. så jeg skal sikre mig om det er:

COMPLETED (vil sige at en person er logget ind)disconnected (vil sige at han er logget ud)

så jeg bagefter kan trække tiderne fra hinanden. :o)
Avatar billede Slettet bruger
19. august 2001 - 01:30 #9
hovsa :o) sådan skulle det stå

COMPLETED (vil sige at en person er logget ind)

disconnected (vil sige at han er logget ud)

Avatar billede thomas_regin Nybegynder
19. august 2001 - 01:32 #10
Så skal du bare bruge samme teknik:

Do while not rs.EOF

if instr(rs(\"action\"), \"disconnected\") Then
    Response.write rs(\"action\")
ELSE
if instr(rs(\"action\"), \"completed\") Then
    Response.write rs(\"action\") & \"test\"
End if
End If
   
rs.movenext
loop
Avatar billede Slettet bruger
19. august 2001 - 01:36 #11
lige nu står der:


Do while not rs.EOF

a = server.HTMLEncode(rs(\"action\"))

if instr(a, \"completed\") Then
    Response.write a & \"test<br>\"
ELSE
if instr(a, \"disconnected\") Then
    Response.write a & \"<br>\"
End if
End If
   


rs.movenext
loop


og ud får jeg kun de actions som er disconnected, og ikke nogle af de andre.. ?? og jeg skulle lave rs(\"action\") om til a ellers så virker det slet ikke
Avatar billede thomas_regin Nybegynder
19. august 2001 - 01:39 #12
Mystisk!! Hvad står der i rs(\"action\")?
Avatar billede Slettet bruger
19. august 2001 - 01:41 #13
når en person logger ind:

PHASE 2 COMPLETED (msgid=a1ead0ab)

når han logger af:

User bla/bla disconnected: duration 0:40:39  bytes xmt 2379344  bytes rcv 349960
Avatar billede thomas_regin Nybegynder
19. august 2001 - 01:51 #14
Aaahaaaaaaaah... Okay!.. Så vidt jeg husker, så er instr Case-sensitiv, så prøv med:

Do while not rs.EOF

a = server.HTMLEncode(rs(\"action\"))

if lcase(instr(a, \"completed\")) Then
    Response.write a & \"test<br>\"
ELSE
if lcase(instr(a, \"disconnected\")) Then
    Response.write a & \"<br>\"
End if
End If
   


rs.movenext
loop
Avatar billede Slettet bruger
19. august 2001 - 01:54 #15
completed er med stort i basen :o).. sorry
Avatar billede Slettet bruger
19. august 2001 - 01:56 #16
og stadig kun disconnected som kommer frem :o)

jeg fatter det ikke.. findes der ikke en service pack til den slags her :o)
Avatar billede thomas_regin Nybegynder
19. august 2001 - 01:56 #17
Du kan osse prøve med:

Do while not rs.EOF

a = server.HTMLEncode(rs(\"action\"))

if lcase(instr(a, \"completed\")) <> \"0\" Then
    Response.write a & \"test<br>\"
ELSE
if lcase(instr(a, \"disconnected\")) <> \"0\" Then
    Response.write a & \"<br>\"
End if
End If

rs.movenext
loop

Instr returnerer jo et tal, så det er muligt, at den kan lave vrøvl, hvis man ikke lave et numerisk check!

Mvh.

Thomas.
Avatar billede Slettet bruger
19. august 2001 - 01:58 #18
stadig det samme.. :o)
hvad så Thomas :o) er du også begyndt at få grå hår? :o) hehe
Avatar billede thomas_regin Nybegynder
19. august 2001 - 02:04 #19
Ork.. Jeg har haft grå hår siden mit svar nummer 2!.. He he.. :-) Det er godt nok mystisk!!..

Prøv det her:

Do while not rs.EOF

a = server.HTMLEncode(rs(\"action\"))

if lcase(instr(a, \"completed\")) <> \"0\" Then
    Response.write a & \"test<br>\"
ELSE
    Response.write a & \"<br>\"
End if

rs.movenext
loop
Avatar billede Slettet bruger
19. august 2001 - 02:06 #20
ja oki... hmm

nu får jeg alt hvad brugeren har lavet :o) også at han er logget ind, og logget ud.. :o)
Avatar billede thomas_regin Nybegynder
19. august 2001 - 02:09 #21
Hmm.. Men den sorterer???.. Altså den skriver test ved nogle af dine records??
Avatar billede Slettet bruger
19. august 2001 - 02:12 #22
jeg er ked af at skulle sige det, men nej.. den skriver ikke test nogen steder :o(
Avatar billede thomas_regin Nybegynder
19. august 2001 - 02:16 #23
Grrr..

Nu stopper jeg snart min karriere som Prof. ASP-gud og slår mig ned som landmand i en Bengalsk landsby. ;)

Hvad er det for et databasefelt, som disse oplysninger(action) står i?.. Er det et Varchar, char, text, blob-felt?..

Må jeg noget mere af koden på denne side?..

Thomas.
Avatar billede Slettet bruger
19. august 2001 - 02:22 #24
<%

Set myConn=server.CreateObject(\"ADODB.Connection\")
myConn.open\"DSN=log\"

SQL = \"select * from opr where domainuser = \'\" & Session(\"domain\") & \"\\\" & Session(\"user\") & \"\'\"
set rs = myConn.Execute(SQL)

Do while not rs.EOF

a = server.HTMLEncode(rs(\"action\"))

if lcase(instr(a, \"completed\")) <> \"0\" Then
    Response.write a & \"test<br>\"
ELSE
    Response.write a & \"<br>\"
End if

rs.movenext
loop





myConn.Close
Set myConn = Nothing

%>



feltene er følgende:
access base.. :o(

action = notat
Avatar billede thomas_regin Nybegynder
19. august 2001 - 02:29 #25
Okay!.. Prøv det her:

Do while not rs.EOF

a = server.HTMLEncode(rs(\"action\"))

Response.Write lcase(instr(a, \"completed\")) & \"<br>\"

rs.movenext
loop

Nu skulle du meget gerne få nogle tal frem i dit output. Hvis der ikke kommer noget, så er det simpelthen fordi der ikke står \"completed\" nogle steder i dit felt!

Hvis du får nogle tal, så prøv derefter:

Do while not rs.EOF

a = server.HTMLEncode(rs(\"action\"))

if cint(lcase(instr(a, \"completed\"))) <> int(0) Then
    Response.write a & \"test<br>\"
ELSE
    Response.write a & \"<br>\"
End if

rs.movenext
loop

Thomas.
Avatar billede Slettet bruger
19. august 2001 - 02:34 #26
hvis jeg skriver COMPLETED med stort så skriver den 10 nogen steder, ellers så skriver den ikke noget..

men sådan her:


Do while not rs.EOF

a = server.HTMLEncode(rs(\"action\"))

if cint(lcase(instr(a, \"COMPLETED\"))) <> int(0) Then
    Response.write a & \"test<br>\"
ELSE
    Response.write a & \"<br>\"
End if

rs.movenext
loop


så kommer der også test på
Avatar billede thomas_regin Nybegynder
19. august 2001 - 02:36 #27
Aaaargh.. Selvfølgelig!!.. Jeg tænker mig sgu\' da ikke om!!!.. Du skal naturligvis gøre således:

if cint(instr(lcase(a), \"completed\")) <> int(0) Then
    Response.write a & \"test<br>\"
ELSE
    Response.write a & \"<br>\"
End if

Prøv det!.. Jeg tror det virker nu!.. ;)
Avatar billede Slettet bruger
19. august 2001 - 02:37 #28
du kan godt gå i seng nu.. :o) tak for hjælpen :o))

ps.. jeg tror faktisk at jeg har fundet en bedre måde at lave det hele på :o)

sov godt.. he sorry
Avatar billede thomas_regin Nybegynder
19. august 2001 - 02:40 #29
Jamen, selv tak!.. Den var godt nok en smule mystisk, men jeg håber alligevel, at du fik klaret dit problem!. :)

Sov godt, og held og lykke med projektet.

Thomas.
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