sql = "SELECT brugernavn FROm brugerNavneTabel" Set rs = Conn.Execute(sql)
Do While Not rs.EoF If brugernavneList <> "" Then brugernavneList = brugernavneList & "|" brugernavneList = brugernavneList & rs("brugernavn") rs.MoveNext Loop
Jamen for at udelukke alt andet, starter jeg på en hel blank side, så det ser således ud indtil nu:
<% brugernavneList = ""
sql = "SELECT * FROM data" Set rs = Conn.Execute(sql)
Do While Not rs.EoF If brugernavneList <> "" Then brugernavneList = brugernavneList & "|" brugernavneList = brugernavneList & rs("til") rs.MoveNext Loop
Dim brugernavneArr = Split(brugernavneList, "|")
For idx=LBound(brugernavneArr) To UBound(brugernavneArr) Response.Write "Bruger: " & brugernavneArr(idx) & "<br>" Next %>
Enten udtrykker jeg mig ikke tydeligt nok, eller også læser du ikke hvad jeg skriver...
Det skal som sagt se sådan her ud:
<% brugernavneList = ""
sql = "SELECT * FROM data" Set rs = Conn.Execute(sql)
Do While Not rs.EoF If brugernavneList <> "" Then brugernavneList = brugernavneList & "|" brugernavneList = brugernavneList & rs("til") rs.MoveNext Loop
Dim brugernavneArr Set brugernavneArr = Split(brugernavneList, "|")
For idx=LBound(brugernavneArr) To UBound(brugernavneArr) Response.Write "Bruger: " & brugernavneArr(idx) & "<br>" Next %>
sql = "SELECT * FROM data WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'" Set rs = Conn.Execute(sql)
Do While Not rs.EoF If brugernavneList <> "" Then brugernavneList = brugernavneList & "|" brugernavneList = brugernavneList & rs("til") rs.MoveNext Loop
Dim brugernavneArr Set brugernavneArr = Split(brugernavneList, "|")
For idx=LBound(brugernavneArr) To UBound(brugernavneArr) Response.Write "Bruger: " & brugernavneArr(idx) & "<br>" Next
sql = "SELECT * FROM data WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'"
- så får du vel kun en enkelt række ud af din tabel? Men du startede jo med at spørge efter "alle brugernavne" i spørgsmålet. Hvordan hænger det sammen?
<% Sub WriteOnLineUsers() Dim arrUsers, isOnline, n arrUsers = Split(Application("Onlineusers"), ",")
Set rs = Conn.Execute("SELECT * FROM bruger ORDER BY ID DESC") do while not rs.eof isOnline = false For n = 1 To UBound(arrUsers) -1 if arrUsers(n) = rs("brugernavn") then isOnline = true exit for end if next
if isOnline then response.write("online") else response.write("offline") end if
<% Sub WriteOnLineUsers() Dim arrUsers, isOnline, n arrUsers = Split(Application("Onlineusers"), ",")
Set rs = Conn.Execute("SELECT * FROM bruger ORDER BY ID DESC") do while not rs.eof isOnline = false For n = 1 To UBound(arrUsers) -1 if arrUsers(n) = rs("brugernavn") then isOnline = true exit for end if next
if rs("brugernavn") = " & brugernavneArr(idx) & " then if isOnline then response.write("online") else response.write("offline") end if
<% Sub WriteOnLineUsers() Dim arrUsers, isOnline, n arrUsers = Split(Application("Onlineusers"), ",")
Set rs = Conn.Execute("SELECT * FROM bruger ORDER BY id DESC") Do While Not rs.EoF isOnline = False
For n = 1 To UBound(arrUsers) - 1 If arrUsers(n) = rs("brugernavn") Then isOnline = True Exit For End If Next
For idx = LBound(brugernavneArr) To UBound(brugernavneArr) If rs("brugernavn") = brugernavneArr(idx) Then If isOnline Then Response.Write("online") Else Response.Write("offline") End If Else Response.Write("Kommentar") End If Next
count = count + 1 rs.MoveNext Loop End Sub
Call WriteOnlineUsers() %>
- men jeg kan bare ikke lige se hvad det er du ønsker at gøre med din kode?
Jeg ønsker at sorterer bruger fra der ikke har været vist. Det virker til dels, men det bruger i brugernavneArr(idx) tit forekommer mere end en gang får jeg en masse dubletter ud.
sql = "SELECT DISTINCT til FROM data WHERE brugernavn = '" & Replace(Session("brugernavn"), "'", "''") & "'" Set rs = Conn.Execute(sql)
Do While Not rs.EoF If brugernavneList <> "" Then brugernavneList = brugernavneList & "|" brugernavneList = brugernavneList & rs("til") rs.MoveNext Loop
Dim brugernavneArr Set brugernavneArr = Split(brugernavneList, "|")
For idx=LBound(brugernavneArr) To UBound(brugernavneArr) Response.Write "Bruger: " & brugernavneArr(idx) & "<br>" Next
[MySQL][ODBC 3.55 Driver][mysqld-4.0.35-nt]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM data WHERE brugernavn = 'brian'' at line 1
1) I min loop får jeg dubletter ud, dvs. to gange brugernavne. 2) Det lader til at værdien i brugernavneArr(idx) forsvinder, da jeg kun får Response.Write("Kommentar") ud.
Ad 1) Vil det sige at det ikke ændrede på nogat at lave koen i 19/08-2006 21:12:06?
Ad 2) Jeg har stadig ikke forstået hvad det er du ønsker at lave i din WriteOnLineUsers() procedure. Prøv at forklare det, sådan at jeg har en bedre chance for at vide hvordan koden bør se ud.
Jo nielle koden i 19/08-2006 21:12:06 virker fint, i den del er der ingen dubletter når jeg kører en response.write
Det er først i min loop at der kommer bobbelt brugernavn ud. Det jeg vil med koden, er at vise om en bruger er offline eller online og hvis man endnu ikke har besøgt brugeren vises en tekst/icon for dette.
Jo, man kan uden problemer lave løkker inden i løkker.
Så vidt jeg kan forstå ud af det du skriver, så indeholder brugernavneArr-arrayet de brugere som den bruger der pt. er logget ind har besøgt? Er det korrekt?
I så fald skal koden nok se nogenlunde sådan her ud:
<% Sub WriteOnLineUsers() Dim arrUsers, isOnline, n arrUsers = Split(Application("Onlineusers"), ",")
Set rs = Conn.Execute("SELECT * FROM bruger ORDER BY id DESC") Do While Not rs.EoF ' Tjek om brugeren er online.
isOnline = False
For n = 1 To UBound(arrUsers) - 1 If arrUsers(n) = rs("brugernavn") Then isOnline = True Exit For End If Next
' Udskriv om brugeren er online.
If isOnline Then Response.Write("online") Else Response.Write("offline") End If
' Tjek om den påloggede bruger har besøht brugeren.
isVisited = False
For idx = LBound(brugernavneArr) To UBound(brugernavneArr) If rs("brugernavn") = brugernavneArr(idx) Then isVisited = True Exit For End If Next
If isVisited Then Response.Write("besøgt") Else Response.Write("ikke besøgt") End If
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.