Avatar billede melby Nybegynder
16. maj 2004 - 21:49 Der er 12 kommentarer og
1 løsning

Udtræk fra database

Hej Eksperter

Jeg henter en liste med brugernavne fra en Access 2000 database (tabellen hedder user).

Jeg har en anden tabel (den hedder log) som indeholder de samme brugernavne med statistik på hvornår de har været logget ind på sitet.

Jeg vil gerne have at de brugere der er statistik på i log tabellen er markeret med rød tekst, men hvordan løser jeg dette?

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database.mdb")
Conn.Open DSN

strSQL = "Select * from user order by username"
Set rs = Conn.Execute(strSQL) %>

<% Do %>

<A HREF="/admin/?page=log&butik=<%=rs("username")%>"><%=rs("username")%></A><BR>

<%
rs.MoveNext
Loop While Not rs.EOF
Conn.Close
Set Conn = Nothing
%>
Avatar billede fennec Nybegynder
16. maj 2004 - 22:01 #1
strSQL = "Select * from user order by username"
Set rs = Conn.Execute(strSQL) %>

<% Do while not rs.eof
    set rs1 = conn.Execute("select * from log where username='"& rs("username") &"'")
    if not rs1.eof then
      color = "red"
    else
      color = "black"
    end if %>

<A HREF="/admin/?page=log&butik=<%=rs("username")%>" style="color:<%= color %>"><%=rs("username")%></A><BR>

<%
rs.MoveNext
Loop
Avatar billede thesurfer Nybegynder
16. maj 2004 - 22:16 #2
hmmm "user" skulle gerne være et reserveret ord:

http://support.microsoft.com:80/support/kb/articles/Q209/1/87.ASP&NoWebContent=1

Så skal man bruge "[user]" i stedet for "user"..
Avatar billede melby Nybegynder
16. maj 2004 - 22:17 #3
Tak fennec
Helt kanon lige i øjet ;-)
Avatar billede fennec Nybegynder
16. maj 2004 - 22:26 #4
hvis du får rigtig mange brugere (over 100 afhængig af databasetype) kan der laves en, som klarer det i en SQL-sætning. Der bliver jo lavet et opslag pr. bruger, som tjekker hvilken farve teksten skal stå med. Men det kan altså koges ned til en....
Avatar billede fennec Nybegynder
16. maj 2004 - 22:27 #5
Her var lige et svar også :o)
Avatar billede melby Nybegynder
16. maj 2004 - 22:38 #6
/fennec
Jeg har 72 brugere og regner ikke med at der kommer flere (det er en lukket kreds)

Er 72 brugere et problem?
Avatar billede eagleeye Praktikant
16. maj 2004 - 22:51 #7
Du kan lave det i en med en join, nu ved jeg ikke helt hvad log tabellen indeholder men hvis der også er en post pr. user kan det lave sådan her.

sql = "select [user].username, log.username as loguser from [user] left join log on [user].username = log.username order by [user].username"


Så kan du lave denne if sætning:

if not rs1.eof then

om til:

if len(""&rs("loguser"))>0 then
Avatar billede melby Nybegynder
16. maj 2004 - 23:02 #8
Jeg er helt ny her på eksperten.

Hvorfor sker der ikke noget når jeg trykker på Accepter ved fennec's svar?
Avatar billede eagleeye Praktikant
16. maj 2004 - 23:06 #9
Fordi du først skal vælge hans navn i listen, før du trykker acceptere.
Avatar billede melby Nybegynder
16. maj 2004 - 23:09 #10
Tak! Og undskyld min uvidenhed. :-)
Avatar billede thesurfer Nybegynder
16. maj 2004 - 23:22 #11
Der står mange gode ting her: ExpFAQ - http://expfaq.1go.dk/
Avatar billede fennec Nybegynder
17. maj 2004 - 08:08 #12
Hvis det skal laves i en sql-sætning, skal du bruge outer join, men med 72 brugere burde det ikke tage så lang tid, så det er ikke nødvendig. Du kan jo sige til hvis du synes det tager lang tid, så skal jeg nok lave den til dig....
Avatar billede eagleeye Praktikant
17. maj 2004 - 22:54 #13
Selvom man kun har 2 eller 4 brugere bør man lave det i en SQL det nedsætter antallet af gange man tilgår databasen. Om 1 3 måneder har du måske 150 brugere eller 2000 så det træls at skulle til at lave koden om til den tid i stedet for lige at bruge 5 minutter nu til at lavet det helt perfekt :)
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