webForumDet fria alternativet
Logga in / Bli medlem

Har kört fast!!

ASP

12 svar · 240 visningar · startad av jimpa

Medlem sedan jan. 2001361 inlägg
Trådstart#1

Hej,

Har kört fast med mitt ASP'ANDE'

När en besökare har registrerat sig
via mitt formulär så finns följande fält sparade i databasen:

ID 'primär nyckel'
fält1
fält2

Nu när min lilla besökare är registrerad så ska han fyllla i ett annat formulär, nämligen:

fält3
fält4

Ok!

Hur får jag fält3, fält4 att hamna i samma ID

Nu ser min kod ut så här:
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DSN=blabla;Password=blabla"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT ID, fält3, fält4 FROM user WHERE ID = " & Trim(Request.QueryString("ID")) & " "
RecSet.Open Addera, Connect, adOpenDynamic, adLockOptimistic

RecSet("fält3") = Request.Form("fält3")
RecSet("fält4") = Request.Form("fält4")

RecSet.Update
RecSet.Close
Connect.Close

Jag vet att det inte funkar så här!!
Men hur ska det se ut ??

Tacksam för ett svar som även jag förstår

/M.v.h. Jimpa

Medlem sedan juli 20003 825 inlägg
#2

SQL = "INSERT INTO [users] (x_email, x_address) VALUES ('" & request("x_email") & "', '" & request("x_address") & ") WHERE [x_ID] = " & request("x_ID") & ";"
Conn.Execute(SQL)

---

That's it!

Gör dig sälv en tjänst, håll inte på med dom där addDynamic och addStacic och den där skiten... Du fattar endå inte vad som händer. Vanlig SQL har du nytta av i andra sammanhang.

Medlem sedan juni 200032 967 inlägg
#3

jakob, jakob, jakob.
är det för tidigt för dig? ;)

det jakob menar, jag vet att han kan det här, är:

SQL = "UPDATE [users] SET x_email = '" & request("x_email") & "', x_address = '" & request("x_address") & "' WHERE [x_ID] = " & request("x_ID")

mvh,

Medlem sedan jan. 2001361 inlägg
#4

Hej,

Tack för svar

Men hur skulle hela min kod se ut
om man sätter in det i koden som jag har

m.v.h. sämre en än NYBÖRJARE

Medlem sedan juli 20003 825 inlägg
#5

ok, sorry... det blir så när man inte tittar på fusklappen,
http://cartman.nu/eclipse/

dessutom har jag en ny version på G.

--

Uppdatera: UPDATE ... where ID = 3
Ny post: INSERT INTO

Medlem sedan juli 20003 825 inlägg
#6

jimpa, för det första har du ingen koppling till databasen.

' ## OPEN THE DATABASE USING DSN-LESS
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\db\mitt_projekt.mdb"))

Medlem sedan jan. 2001361 inlägg
#7

Jag öppnar ju databasen så här!!

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DSN=blabla;Password=blabla

Medlem sedan juli 20003 825 inlägg
#8

sorry, jag trodde det var rent illustrativt...

Har du verkligen gått in i kontrollpanelen och skapat en fil DSN till namnet "blabla"??

Medlem sedan jan. 2001361 inlägg
#9

Min databas heter igentligen databas.mdb

6456-databas, skriver jag när jag ska öppna den, 6456 är mitt användarnamn
på servern.

Om det var det du menade!

Medlem sedan jan. 2001361 inlägg
#10

Okej, så här ser det ut!

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DSN=b1464-db;Password=@01#$hefghhdgmlbfkjdhmpfbce"
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "UPDATE [users] SET x_email = '" & request("x_email") & "', x_address = '" & request("x_address") & "' WHERE [x_ID] = " & request("x_ID")

RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic

RecSet("fält3") = Request.Form("fält3")
RecSet("fält4") = Request.Form("fält4")

RecSet.Update
RecSet.Close
Connect.Close
%>

Nu men får det här felmeddelandet!

ADODB.Recordset.1 error '80004005'

Syntax error (missing operator) in query expression '[x_ID] ='.

/cross/admin/save_image.asp, line 32

Ööö, vad är fel

M.v.h. DUMMARE ÄN DUMMAST

Medlem sedan dec. 200012 464 inlägg
#11

Om du enbart skall göra en update så behövs det inget recordset alls.

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DSN=b1464-db;Password=@01#$hefghhdgmlbfkjdhmpfbce" 
SQL = "UPDATE users SET x_email = '" & request("x_email") & "', x_address = '" & request("x_address") & "' WHERE x_ID = " & request("x_ID")

connect.execute SQL
Connect.Close 
%>

Det felmeddelande du får beror förmodligen på att request("x_ID")
inte innehåller något värde

Medlem sedan jan. 2001361 inlägg
#12

Ööö,

Men hur får jag ett värde då ?

M.v.h. NU ÄNNU DUMMARE

Medlem sedan dec. 200012 464 inlägg
#13

Det skall stå request.QueryString istället för enbart request. Blev lite mycket klipp och klistra där.

Request.QueryString innehåller det som står efter frågetecknet i addressen till sidan
t.ex
xxx.nu/postings.asp?x_id=12
så har Request.QueryString("x_id") värdet 12

260 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)