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





Computerworld
Med ny iOS-opdatering vil du selv kunne slå udskældt batterifunktion fra på din iPhone
Apple har sænket ydeevnen på ældre iPhones for at få batteriet til at holde længere, men nu fortæller Tim Cook, at du i fremtiden selv kan slå funktionen fra.
CIO
Vestas’ CIO stopper: Torben Bonde trækker sig efter 19 år på posten
Interview: Torben Bonde har været CIO i Vestas i de seneste 19 år og har været øverste chef for mange hundrede it-medarbejdere i en global it-organisation, men nu er det slut. Her fortæller Torben Bonde om fremtidsplanerne.
Comon
LG stopper al udvikling af LG G7: Begynder helt forfra få måneder før lancering
Ifølge et velanset koreansk investormedie har LG’s CEO beordret fuld stop på udviklingen af LG G7 og starte forfra
Job & Karriere
Dansk it-virksomhed indførte fire-dages arbejdsuge: I dag er sygefraværet rekord-lavt og direktøren har tabt sig 13 kilo
Interview: Great Place To Work kategori-vinderen IIH Nordic har indført en fire-dages arbejdsuge og taget et opgør med forstyrrende storrums-kontorer og en frustrerende mailkultur. I dag er medarbejderne gladere end nogensinde før.
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.