steen_hansen Seniormester
12. januar 2018 - 20:09 Der er 2 kommentarer

INSERT data, tag deneste ID fra det netop indsatte RS og overfør det ID til ny tabel

Jeg har en form, som poster data i tabellen "messages". Det virker fint nok:

        Conn.Execute("INSERT INTO messages (author, vTitle, message, duration, dato) VALUES (" & _
            "'" & SQLEncode(author) & "', " & _
            "'" & Trim(SQLEncode(Request.Form("title"))) & "', " & _
            "'" & SQLEncode(Request.Form("message")) & "', " & _
            "" & Request.Form("duration") & ", " & _
            "'" & Dato & "')")

Jeg vil gerne lave, så hver enkelt kan se, om der er ulæste beskeder. Er de ulæste, skal RS("read") være 0 (nul)

Går man ind på siden, skal der øverst på siden postes 1 RS("read"). Den bliver ikke svær.

Så jeg hiver seneste messageID fra tabellen "messages"

        Set RSmessageID = Conn.Execute("SELECT messageID FROM messages ORDER BY messageID DESC LIMIT 1;")

Det virker helt fint.

Jeg hiver samtlige brugernavne tabellen "users"

        Set RSMessageUserName = Conn.Execute("SELECT username FROM users")

Jeg har ikke lige testet den endnu, men den burde hive samtlige usernames

Dem vil jeg så smide ind i tabellen "messages_read"

        Conn.Execute("INSERT INTO messages_read (messID, username_read) VALUES (" & _
            "" & xID & ", " & _
            "'" & xUser & "')")

Men der sker intet. Der kommer ikke noget med over. Hvad laver jeg galt? Det burde være så simpelt.

Hele scriptet:

        Conn.Execute("INSERT INTO messages (author, vTitle, message, duration, dato) VALUES (" & _
            "'" & SQLEncode(author) & "', " & _
            "'" & Trim(SQLEncode(Request.Form("title"))) & "', " & _
            "'" & SQLEncode(Request.Form("message")) & "', " & _
            "" & Request.Form("duration") & ", " & _
            "'" & Dato & "')")

        Dim RSmessageID, RSMessageUserName, xID, xUser
        Set RSmessageID = Conn.Execute("SELECT messageID FROM messages ORDER BY messageID DESC LIMIT 1;")
        Set RSMessageUserName = Conn.Execute("SELECT username FROM users")

        xID = RSmessageID("messageID")
        xUser = RSMessageUserName("username")

        Conn.Execute("INSERT INTO messages_read (messID, username_read) VALUES (" & _
            "" & xID & ", " & _
            "'" & xUser & "')")
steen_hansen Seniormester
12. januar 2018 - 20:15 #1
Jeg skal bare have de to værdier med over på samtlige brugere.

Her er standardværdien 0 (nul) i record settet "read"

Når den enkelte bruger går ind på siden, skal den værdi ændres til 1, hvilket indikerer, at brugeren og har 0 ulæste beskeder

Næste gang en bruger skriver en besked, kommer der et ID, hvor der som standard bliver angivet 0.

SQL tæller antallet af record sets med værdien 0, og så kan hver enkelt bruger se hvor mange ulæste beskeder der er. Det er hele idéen.
steen_hansen Seniormester
12. januar 2018 - 21:50 #2
Set RSMessageUserName = Conn.Execute("SELECT username FROM users")

- virker alligevel ikke. Der skal vel køres en loop med det specifikke ID på hvert username ..............?
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

Opret Preview

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





Premium
Udbetaling Danmark skal forhandle om mulig kompensation med Netcompany til efteråret
Interview: Inden årsskiftet står det klart, om Netcompany skal kompensere Udbetaling Danmark for de startvanskeligheder, der har været i forbindelse med det nye boligstøttesystem. "Jeg kan hverken be- eller afkræfte, at vi kommer til at bede om et pengebeløb fra Netcompany," lyder det fra Søren Eismark, underdirektør i ATP, som står bag Udbetaling Danmark.
Computerworld
Ny-opdaget malware blokerer programmer som forsøger at slette den: Særligt windows 10 er ramt
En ny type malware er blevet opfanget, der både overvåger din computer og generer falske reklameindtægter til bagmændende. Og så har den en forkærlighed for Windows 10.
CIO
Henrik Jeberg om at arbejde i Silicon Valley: "Er du dygtig nok får du tilbud der får en til at falde ned af stolen."
Henrik Jeberg bor i San Francisco og er direktør i Hampleton Partners, der rådgiver om opkøb med særligt fokus på teknologi. Hør ham fortælle om forskellen på Danmark og Silicon Valley - og om nogle af de vilde forhold der hersker i verdens ubestridte tech-hovedstad.
Job & Karriere
KMD opsagde tryghedsaftaler med medarbejderne få måneder før 300 medarbejdere blev outsourcet til IBM
KMD har i løbet af foråret opsagt to såkaldte tryghedsaftaler med en del af selskabets medarbejdere. Når aftalerne stopper ved udgangen af 2018, er de pågældende medarbejdere ikke længere berettiget til særlig godtgørelse. Det kan få konsekvenser, hvis IBM som forventet skærer i antallet af de 300 KMD-medarbejdere, som selskabet overtager.
White paper
Mobility - her er de aktuelle udfordringer
Hvad med sikkerheden? Mobility-bølgen fejer igennem danske virksomheder, og der er masser af muligheder og faldgruber. Sikkerheden halter, men det kan der gøres noget ved. Produceret af Computerworld.dk i oktober 2014.