Avatar billede _petrucci Nybegynder
21. oktober 2002 - 12:53 Der er 8 kommentarer og
1 løsning

Opdater flere felter

Hejsa,

har prøvet at søge igennem flere update indlæg, men har ikke rigtig fundet noget der passer til mit problem. Så jeg prøver her.

Jeg er ved at lave en slags auktionssystem (for sjov, ikke noget seriøst), hvor registrede folk kan byde på diverse ting. I løbet af 1 uge er der 6 forskellige ting de kan byde på - og i slutningen af ugen findes så den højstbydende.

Tricket er at ALLE folk skal være registreret med et bud, no matter what. Derfor...vil jeg lave et gennemsnitsbud, der løbende bliver opdateret i en tabel, når folk har budt et bestemt beløb:

Person1 byder 400 -> Average: 400
Person2 byder 300 -> Average: 350
Person3 byder 500 -> Average: 400
osv.

MEN..der kan jo ske det at folk er uden internet en uge og derved ikke får budt. Derfor vil jeg om søndagen opdatere disse folks budfelt i databasen...med Average beløbet. Og helst ved bare at klikke på en "afslut auktion" knap, der så bare går ind og finder alle de folk der har budt "0" og derefter opdaterer "BUD" tabellen med deres ID og sætter Average buddet ind i "budt" feltet.

Forvirrende?

Hvordan får jeg alle disse felter opdateret automatisk eller gennem et enkelt knap-tryk?
Avatar billede thomas_regin Nybegynder
21. oktober 2002 - 12:57 #1
strSQL = "Select avg(BUD) as Average_bud from AuktionsDB"
set rs = dbconn.execute(strSQL)

Response.Write "Gennemsnittet af alle bud er: " & rs("Average_bud")

Mvh,

Thomas Regin.
Avatar billede _petrucci Nybegynder
21. oktober 2002 - 13:00 #2
Joo..det ser da meget godt ud. Det var bare ikke liige det, jeg spurgte om hjælp til :)
Avatar billede thomas_regin Nybegynder
21. oktober 2002 - 13:00 #3
Og så er det bare, at opdatere databasen, således at alle dem, hvis bud er LAVERE end gennemsnittet bliver opdateret!

strSQL = "Update AuktionsDB Set BUD = " & rs("Average_bud") & " where BUD < " & rs("Average_bud")
dbconn.execute(strSQL)

Mvh,

Thomas Regin.
Avatar billede _petrucci Nybegynder
21. oktober 2002 - 13:04 #4
Nej, så laver du jo halvdelen af budene om. Meningen er, at dem der IKKE har bud (altså "0")...skal have Average buddet sat ind. Men vil en redigering af din kode virke, så alle ikke-bud folks felter vil blive opdateret således?

strSQL = "Update AuktionsDB Set BUD = " & rs("Average_bud") & " where BUD = 0
dbconn.execute(strSQL)
Avatar billede thomas_regin Nybegynder
21. oktober 2002 - 13:06 #5
Aah.. Okay!

Så skal du bare gøre som du selv foreslog herever!

strSQL = "Update AuktionsDB Set BUD = " & rs("Average_bud") & " where BUD = 0
dbconn.execute(strSQL)

Mvh,

Thomas Regin.
Avatar billede _petrucci Nybegynder
21. oktober 2002 - 13:23 #6
tjekker lige om det vil fungere fint med eksemplet...
Avatar billede _petrucci Nybegynder
21. oktober 2002 - 13:28 #7
Kommer da lige i tanke om at man ikke skal bruge UPDATE, men INSERT i dette tilfælde. Skal jo først finde ud af i "BUD" tabellen, om alle folk (ID) har budt - hvis de ikke har, skal average indsættes.

SQL = "SELECT * FROM users"
set rs = Conn.Execute(SQL)
id = rs("UserID")

SQL2 = "SELECT * FROM bud"
set rs2 = Conn.Execute(SQL2)

Men hvordan er det lige jeg udtrækker de ID, der IKKE eksisterer i "bud" tabellen?
Avatar billede thomas_regin Nybegynder
21. oktober 2002 - 13:35 #8
Det vil sige, at du har 2 tabeller?.. Èn til brugere og én til bud!?

Tjaeh.. Så må man lave et lidt sjusket loop, med mindre du har lavet relationer:

<%
StrSQL = "SELECT ID FROM USERS"
set rs = myConn.Execute(strSQL)
strSQL = ""

do while not rs.EOF
    strSQL = "Select * from BUD where ID = " & rs("ID")
    set brs = myConn.execute(strSQL)

    if brs.EOF then
      strSQL = "Insert into BUD(BUDT) VALUES ('" & avgRS("Average_bud") & "')
      myConn.execute(strSQL)
    Else
      strSQL = "Update BUD Set Budt = '" & avgRS("Average_bud") & "' where budt = '0'"
      myConn.execute(strSQL)
    End If
loop
rs.Movenext
%>

Det er godt nok sjusket, men hvis det virker så... ;)

Mvh,

Thomas Regin.
Avatar billede _petrucci Nybegynder
21. oktober 2002 - 14:09 #9
Heheh, det ser da overskueligt ud. Tror dog ikke der er grund til at lave den UPDATE, da brugere ikke kan byde 0kr (og derved heller ikke vil være at finde i BUD tabellen).

Men hvad hvis jeg nu har en relation mellem Users.Userid og BUD.Userid ?
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