Avatar billede fastwrite Nybegynder
21. maj 2004 - 02:10 Der er 17 kommentarer og
1 løsning

opdatere database ud fra brugers input

Hej. Jeg har nu bakset med det i unævnelige mange timer..

Jeg har en database, produkter.mdb - i denne database har jeg en query/forespørgsel der hedder qrysmykker.

I qrysmykker har jeg mange felter, men hvis vi bare nøjes med det ene, kan jeg nok klare resten. Lad os ta' feltet PRISER

Jeg har nu en formular hvor www.navn.dk?id=13 - hvor ID'et bestemmer hvad det er for et produkt.

Jeg har lavet en input type hvor værdien pris bliver sat ind i inputtets value.

Hvis jeg nu ændrer prisen fra fx. 100 til 101, og trykker submit, retter den tallet tilbage til 100 igen.

Kan jeg få en enkel metode til at opdatere en database? Jeg har prøvet med insert into, men kan ikke rigtigt få det til at virke.
Avatar billede thesurfer Nybegynder
21. maj 2004 - 02:14 #1
Insert into = ny værdi
Update = opdater gamle værdier

læs "Lektion 22: Opdater data i databasen" - http://www.html.dk/tutorials/asp/lektion22.asp

Der er 6 database-relaterede lektioner (17-22): http://www.html.dk/tutorials/asp/

De er korte og gode.
Avatar billede fastwrite Nybegynder
21. maj 2004 - 02:35 #2
jeg har læst mig igennem stort set hele html.dk siden :o)

Når jeg bruger min insert into, og trykker submit, så laver jeg en query.string med ?mode=1, som står længere ned på min side.

I denne mode=1 har jeg følgende kode:

<% if mode="1" then
StrSQL = "Select * from qrysmykker WHERE ID= " & request.QueryString("id")
Set rst = Server.CreateObject("ADODB.Recordset")
rst.Open strSQL, con, 1,3
%>
<%
strsql = "Insert into tblprodukter (pris) values('" & request.form("pris") & "')"
con.execute(strSQL)

else
end if %>

Men - som jeg skrev - den retter beløbet tilbage til det der står i databasen, og ikke min ændrede pris.
Avatar billede tubber Juniormester
21. maj 2004 - 07:14 #3
Ummidlbart er det fordi du laver en "insert into" i stedet for "update"

<% if mode="1" then
StrSQL = "Select * from qrysmykker WHERE ID= " & request.QueryString("id")
Set rst = Server.CreateObject("ADODB.Recordset")
rst.Open strSQL, con, 1,3
%>
<%
strsql = "update tblprodukter where id = 1 (pris) values('" & request.form("pris") & "')"
con.execute(strSQL)

else
end if %>

Noget i den retning.....chekker lige efter
Avatar billede tubber Juniormester
21. maj 2004 - 07:19 #4
strsql = "update tblprodukter set pris = '" & request.form("pris") "' & where id = "xxx";"

Nok nærmere sådan der :)
Avatar billede hansdam Nybegynder
21. maj 2004 - 07:32 #5
Først lige en lille rettelse til den overstående kommentar fra tubber
strsql = "update tblprodukter set pris = '" & request.form("pris") "' & where id = "xxx";"
skal rettes til
strsql = "update tblprodukter set pris = '" & request.form("pris") & "' where id = "xxx";"

&'et var lige placeret lidt forkert ;)

Personligt fortrækker jeg denne måde at opdatere data i databasen på. Jeg synes ganske enkelt at det er mere overskueligt.
-------------------------------------
<%
if mode="1" then
   
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("produkter.mdb") & ";UID=admin;PWD=;"
       
        Set rs = Server.CreateObject("ADODB.RecordSet")
        strSQL = "Select * From qrysmykker WHERE id = " & Request.Querystring("id")
        rs.Open strSQL, Conn, 1, 3
           
            rs.Update
            rs("pris") = Request.form("pris")
            rs.Update
           
        rs.close
       
    Conn.close
    set conn = nothing
   
end if
%>
-------------------------------------
/Hans
Avatar billede thesurfer Nybegynder
21. maj 2004 - 15:28 #6
Spar os en masse tid og smid din form herind.. så skal vi ikke gætte os frem..
Avatar billede thesurfer Nybegynder
21. maj 2004 - 15:30 #7
og det her er da forkert: "' & where id = "xxx";"

Det skal nok være: "' & where id = " & xxx
hvor xxx er et tal.. man behøver ikke det sidste ";".
Avatar billede thesurfer Nybegynder
21. maj 2004 - 15:34 #8
..det kan også godt være, at du skal læse lektionerne:
"Lektion 10: Værdier af variabler i en URL" - http://html.dk/tutorials/asp/lektion10.asp
"Lektion 11: Værdier af elementer i en formular" - http://html.dk/tutorials/asp/lektion11.asp

For der er vist noget galt.. med mindre at din form ser nogenlunde sådan ud:

<form action="side.asp?mode=1&id=NUMMER" method="post"> (hvor side.asp erstattes, og NUMMER er id-nummeret)

..og du bruger: mode = request.querystring("mode") (hvor der jo står mode=1)
Avatar billede fastwrite Nybegynder
21. maj 2004 - 18:57 #9
ih - takker for alle forslag.. jeg har ikke tid idag, så det må blive i nat engang, jeg lige tester igennem.
Avatar billede fastwrite Nybegynder
23. maj 2004 - 10:57 #10
ahh - jeg kan ikke få den strSQL til at virke.. hvad er forkert?! jeg tror det er sammensætningen af ' og " der er sat forkert op.
Avatar billede thesurfer Nybegynder
23. maj 2004 - 12:59 #11
En lille tilføjelse til mit indlæg 21/05-2004 15:28:34: Smid også din asp kode herind..

- Vi sidder ikke ved din computer, og det er de færeste af os, der er synske :-)
Avatar billede fastwrite Nybegynder
24. maj 2004 - 23:21 #12
årh, hva? :)

Jeg har faktisk fundet ud af det. Jeg brugte koden fra hansdam - og rettede den blot til med de felter jeg har i databasen, og så fungerer det fint...

Men tusind tak til jer alle!! Drop nogle svar, så jeg kan give jer nogle point.
Avatar billede hansdam Nybegynder
24. maj 2004 - 23:23 #13
Okay :)
Avatar billede thesurfer Nybegynder
24. maj 2004 - 23:31 #14
Jeg skrev bare, at manglede nogle oplysninger..
Ingen points til mig, tak :-)
Avatar billede tubber Juniormester
24. maj 2004 - 23:48 #15
Springer også over :)
Avatar billede fastwrite Nybegynder
25. maj 2004 - 22:09 #16
thesurfer og tubber - ok fair.. jeg tilføjer lige lidt til jeres karma!
Avatar billede thesurfer Nybegynder
25. maj 2004 - 22:17 #17
Takker for karma :-)
Avatar billede fastwrite Nybegynder
27. maj 2004 - 16:37 #18
velbekommen da.
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