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
Ny Chrome-version kan føre til et gennembrud for PWA'erne: Google og Microsoft satser på denne nye type apps
Progressive web apps - eller PWA’er - kommer du til at høre meget mere til. Både Microsoft og Google har kastet deres kærlighed på disse apps. Se her, hvad de to selskaber ser i PWA’erne.
Computerworld
Google indfører Android-gebyr efter kæmpe EU-bøde: Android-producenter skal nu betale for brug af Google-tjenester
Efter sommerens kæmpe EU-bøde indfører Google licensbetaling for Android-producenters brug af blandt andet Play Store. Men "Android vil forblive gratis og open source," lyder det fra selskabet.
CIO
Forleden reparerede en mekaniker min bil: Det kostede 4.200 kroner, som min hjerne snød mig til at betale med et smil
De rationelle it-beslutninger du træffer er måske en illusion. Det lærte jeg da min bil gik i stykker og min hjerne snød mig til at tro, at alt var fint. Til gengæld fandt jeg tre fælder dine it-beslutninger kan falde i.
Job & Karriere
Her er syv job-annoncer der overrasker med helt usædvanlige overskrifter
Der er mange ledige it-job i øjeblikket. It-jobbank har her fundet syv spændende stillinger, der har det til fælles, at annoncen har en utraditionel overskrift.
White paper
Undgå fælderne når du skal lease multimaskiner – her er 5 tips!
Markedet for leasing af print- og kopiløsninger kan være lidt af en jungle uden nøje brancheindsigt. Virksomheder og institutioner har i flere tilfælde accepteret kontrakter, som har bundet dem til unødigt kostbare og langvarige leasing-og lejeforløb. Underskriften er desværre bindende og derfor er det en god idé at sætte sig ind i aftalerne. I dette whitepaper giver vi dig 5 tips, så du sikrer dig de bedste vilkår.