Avatar billede _petrucci Nybegynder
10. december 2001 - 09:48 Der er 28 kommentarer og
3 løsninger

Indsætte 2 felt værdier ind i ét db-felt

Hejsa,

jeg skal have indsat 2 form værdier ind i et specielt database felt. Eks:

<input type=\"hidden\" name=\"virkid\" size=\"10\" value=\"<% response.write rs(\"VIRKID\")\">
<input type=\"text\" name=\"brugerid\" size=\"10\" value=\"\">

dvs. at ID feltet i databasen f.eks skal indeholde værdien: 20099  (99 er det man indtaster i formen)

I min INSERT sætning requester den indtil videre bare \"virkid\" værdien - så hvordan tilføjer man den værdi man indtaster i \"brugerid\" til det hidden inputfelt der hedder \"virkid\" så værdierne bliver lagt sammen?
Avatar billede nordclc Nybegynder
10. december 2001 - 09:52 #1
Jeg forstår ikke rigtig dit spørhgsmål, men der er noget galt i din sætning:

<input type=\"hidden\" name=\"virkid\" size=\"10\" value=\"<%= rs(\"VIRKID\") %>\">
Avatar billede nute Nybegynder
10. december 2001 - 09:54 #2
ehhh...du bare requester begge felt...

SQL = \" INSERT INTO tabell (felt) VALUES (\'\" & request.form(\"virkid\") & request.form(\"brugerid\") & \"\')\"

/nute
Avatar billede mrbarnes Nybegynder
10. december 2001 - 09:54 #3
ID = rs(\"VIRKID\") & request.form(\"brugerID\")

også indsætte ID i databasen...

Håber det er det du sørger som svar...
Avatar billede nordclc Nybegynder
10. december 2001 - 09:55 #4
På din asp side som du kalder fra ovenståen form, skal du skrive følgende:

\' Hvis de skal summeres
v_sum = request_form(\"virkid\") + request_form(\"brugerid\")

\' Hvis de skal sammensættes
v_sam = request_form(\"virkid\") & request_form(\"brugerid\")


Avatar billede nute Nybegynder
10. december 2001 - 09:55 #5
nordclc >> det er ingenting galt i å skrive det han har skrevet. \'<%=\' er bare en forkortelse av \'<% response.write\'

/nute
Avatar billede _petrucci Nybegynder
10. december 2001 - 09:56 #6
Yep, ups skrev lige forkert der.

Jeg skal have indsat en ID værdi i et felt i databasen. Det ID skal bestå af virksomhedsid + brugerid.

virkid = 200
brugerid = 99  (det man indtaster i inputfeltet \"brugerid\")

De 2 værdier skal så lægges sammen til = 20099 og det er den værdi der skal indsættes i database feltet.

Virksomhedsid ligger i et skjult input felt, dvs. den er forud-defineret.
Avatar billede _petrucci Nybegynder
10. december 2001 - 09:57 #7
wow, skrev lige mens i andre kom med svar..cool ;) tjekker det lige..
Avatar billede nute Nybegynder
10. december 2001 - 09:58 #8
nordclc >> dette:

\' Hvis de skal summeres
v_sum = request_form(\"virkid\") + request_form(\"brugerid\")

vil ikke gi annet enn 20099 hvis \'virkid\' = 200 og \'brugerid\' = 99 fordi alle verdier på request streamen blir behandlet som strenger. Hvis du skal summere verdiene er du nødt til ¨å konvertere til tall:

v_sum = CInt(request_form(\"virkid\")) + Cint(request_form(\"brugerid\"))

/nute

Avatar billede mrbarnes Nybegynder
10. december 2001 - 09:59 #9
ID = cInt(rs(\"VIRKID\")) + cINT(request.form(\"brugerID\"))
SQL = \" INSERT INTO tabell (felt) VALUES (\'\" & ID & \"\')\"

Sammensat svar af mit og nutes bburde virke...
Avatar billede _petrucci Nybegynder
10. december 2001 - 10:00 #10
tillægsspørgsmål til extra points:

hvordan tjekker jeg at den samlede værdi ikke allerede eksisterer i databasekolonnen?
Avatar billede nute Nybegynder
10. december 2001 - 10:01 #11
mrbarnes >> han vil ikke legge verdiene sammen (ved å summere dem). han vil konkatinere verdiene til en verdi...

dvs: verdiene 200 og 99 skal bli 20099, og *ikke* 299...
Avatar billede nordclc Nybegynder
10. december 2001 - 10:01 #12
v_sam = request_form(\"virkid\") & request_form(\"brugerid\")
SQL = \" INSERT INTO tabell (felt) VALUES (\'\" & v_sam & \"\')\"

Avatar billede mrbarnes Nybegynder
10. december 2001 - 10:02 #13
SQL = \"Select ID from tbl WHERE ID=\" & ID

hvis den ikke er tom så findes værdien....
Avatar billede nute Nybegynder
10. december 2001 - 10:03 #14
ID = request.form(\"virkid\") & request.form(\"brugerid\")
SQL = \"SELECT * FROM tabell WHERE ID = \" & ID
Set RS = Conn.Execute( SQL )

if( RS.BOF ) then
  \'Finnes ikke
else
  \'Finnes
end if
Avatar billede mrbarnes Nybegynder
10. december 2001 - 10:04 #15
okay nordclc.... men svaret du har skrevet virker... efter hensigten... bare vi får hjulpet ham..
Avatar billede nordclc Nybegynder
10. december 2001 - 10:04 #16
\'finnes ikke erstattes med:
v_sam = request_form(\"virkid\") & request_form(\"brugerid\")
SQL = \" INSERT INTO tabell (ID) VALUES (\'\" & v_sam & \"\')\"
Set RS = Conn.Execute( SQL )

Avatar billede mrbarnes Nybegynder
10. december 2001 - 10:06 #17
ID = request.form(\"virkid\") & request.form(\"brugerid\")
SQL = \"SELECT * FROM tabell WHERE ID = \" & ID
Set RS = Conn.Execute( SQL )

if( RS.BOF ) then
  v_sam = request_form(\"virkid\") & request_form(\"brugerid\")
  SQL = \" INSERT INTO tabell (ID) VALUES (\'\" & v_sam & \"\')\"
  Set RS = Conn.Execute( SQL )
else
  \'Finnes
end if
Avatar billede _petrucci Nybegynder
10. december 2001 - 10:15 #18
Ok jeg skal nok dele lidt points ud senere - en sidste ting til lidt extra point:

I min INSERT statement har jeg en WHERE BRUGER_VIRKSOMHED =\"& Session(\"VIRK_ID\")

dvs. det er en administrator der er logget ind med en Session der kan oprette brugere.

BRUGER_VIRKSOMED = en kolonne i tabellen

Hvis jeg FJERNER denne where sætning...så opretter den brugeren fint - men hvis where sætningen er tilstede....kan den ikke loade asp-siden og dermed heller ikke oprette brugeren.

Nogen idé om hvad/hvor problemet kan være?
Avatar billede nordclc Nybegynder
10. december 2001 - 10:16 #19
Hvis det er et tekst felt, så mangler der plinger \'\' omkring!
Avatar billede nute Nybegynder
10. december 2001 - 10:18 #20
du kan *ikke* benytte en INSERT sammen med condition !! på plain dansk betyr dette at du ikke kan legge en WHERE clause i en INSERT SQL. så skal du bruke en UPDATE statement

/nute
Avatar billede _petrucci Nybegynder
10. december 2001 - 10:21 #21
Ok cool...lader også til den opretter det rigtige sted uden sætningen.

nute:

din sidste if rs.bof sætning - hvordan vil det så se ud hvis jeg skal indsætte et nyt sql statement  (INSERT statementet) under \'finnes ikke ?  skal der så ikke lukkes for en connection og åbnes for en ny...eller?
Avatar billede nute Nybegynder
10. december 2001 - 10:38 #22
ID = request.form(\"virkid\") & request.form(\"brugerid\")
SQL = \"SELECT * FROM tabell WHERE ID = \" & ID
Set RS = Conn.Execute( SQL )

if( RS.BOF ) then
  SQL = \"INSERT INTO tabell (virkid) VALUES (\" & ID & \")\"
  Conn.Execute( SQL )
else
  \'Finnes
end if

that\'s it

/nute
Avatar billede _petrucci Nybegynder
10. december 2001 - 10:43 #23
Det vil den godt nok ikke :(  her er koden:

<%
Dim myConn2
Dim strSQL
Dim Brugere
Set myConn2 = Server.CreateObject(\"ADODB.Connection\")
myConn2.Open \"DRIVER=SQL Server;SERVER=navn;UID=uid;PWD=kodeord;DATABASE=dbnavn;\"

ID = request.form(\"virkid\") & request.form(\"brugerid\")
SQL = \"SELECT * FROM Brugere WHERE ID = \" & ID
Set RS = myConn2.Execute( SQL )

if( RS.BOF ) then
  \'Finnes ikke
  strSQL = \"INSERT INTO Brugere (BRUGER_ID, BRUGER_TLF, BRUGER_KODEORD, BRUGER_NAVN, BRUGER_PINKODE, BRUGER_VIRKSOMHED, ADGANG_REDIGER_TID, ADGANG_REDIGER_PROFIL) values(\'\" & Request.Form(\"bruger_virksomhed\") & Request.Form(\"bruger_id\") & \"\', \'\" & Request.Form(\"bruger_tlf\") & \"\', \'\" & Request.Form(\"bruger_kodeord\") & \"\', \'\" & Request.Form(\"bruger_navn\") & \"\', \'\" & Request.Form(\"bruger_pinkode\") & \"\', \'\" & Request.Form(\"bruger_virksomhed\") & \"\', \'\" & Request.Form(\"adg_tidsreg\") & \"\', \'\" & Request.Form(\"adg_profil\") & \"\') \"

myConn2.Execute( strSQL )

myConn2.Close
    response.redirect \"brugere.asp\"
else
  \'Finnes
  response.redirect \"test.html\"
end if
%>
Avatar billede _petrucci Nybegynder
10. december 2001 - 10:45 #24
virker heller ikke hvis jeg sætter strSQL til SQL
Avatar billede nute Nybegynder
10. december 2001 - 10:48 #25
du skriver godt nok ikke hvilken feil du får, men jeg kan forestille meg at den skriver noe om \"syntax error\" eller noe lignende.

alle dine felt i databasen som er av typen \'number\' skal *ikke* ha \'\' rundt verdiene du prøver å sette inn.

u c ?
Avatar billede _petrucci Nybegynder
10. december 2001 - 10:53 #26
altså ID, bruger_pinkode og bruger_virksomhed er INTEGER...

men synes ikke det virker når jeg fjerner \' \' i INSERT sætningen...
Avatar billede nute Nybegynder
10. december 2001 - 10:59 #27
så skal din SQL se sånn ut:

strSQL = \"INSERT INTO Brugere (BRUGER_ID, BRUGER_TLF, BRUGER_KODEORD, BRUGER_NAVN, BRUGER_PINKODE, BRUGER_VIRKSOMHED, ADGANG_REDIGER_TID, ADGANG_REDIGER_PROFIL) values(\" & Request.Form(\"bruger_virksomhed\") & Request.Form(\"bruger_id\") & \", \'\" & Request.Form(\"bruger_tlf\") & \"\', \'\" & Request.Form(\"bruger_kodeord\") & \"\', \'\" & Request.Form(\"bruger_navn\") & \"\', \" & Request.Form(\"bruger_pinkode\") & \", \" & Request.Form(\"bruger_virksomhed\") & \", \'\" & Request.Form(\"adg_tidsreg\") & \"\', \'\" & Request.Form(\"adg_profil\") & \"\') \"

men hva mener du med \"synes ikke det virker\" ?? enten så virker det, eler så virker det ikke.

hvis det ikke virker...hvilken feilmelding får du ? hvordan ser du at den ikke virker ?
Avatar billede _petrucci Nybegynder
10. december 2001 - 11:02 #28
den skriver asp-adresse i locationbar og kommer med en \"siden kan ikke vises\" fejlbesked.

--
ID = request.form(\"bruger_virksomhed\") & request.form(\"bruger_id\")
SQL = \"SELECT * FROM Brugere WHERE ID = \" & ID
Set RS = myConn2.Execute( SQL )

if( RS.BOF ) then
  \'Finnes ikke
strSQL = \"INSERT INTO Brugere (BRUGER_ID, BRUGER_TLF, BRUGER_KODEORD, BRUGER_NAVN, BRUGER_PINKODE, BRUGER_VIRKSOMHED, ADGANG_REDIGER_TID, ADGANG_REDIGER_PROFIL) values(\" & Request.Form(\"bruger_virksomhed\") & Request.Form(\"bruger_id\") & \", \'\" & Request.Form(\"bruger_tlf\") & \"\', \'\" & Request.Form(\"bruger_kodeord\") & \"\', \'\" & Request.Form(\"bruger_navn\") & \"\', \" & Request.Form(\"bruger_pinkode\") & \", \" & Request.Form(\"bruger_virksomhed\") & \", \'\" & Request.Form(\"adg_tidsreg\") & \"\', \'\" & Request.Form(\"adg_profil\") & \"\') \"

myConn2.Execute( strSQL )
myConn2.Close
    response.redirect \"brugere.asp\"
else
  \'Finnes
  response.redirect \"test.html\"
end if
Avatar billede nute Nybegynder
10. december 2001 - 11:06 #29
har du et link...den feilmelding du kommer med kan ikke brukes til noe. Det er andre feil meldinger som forteller hva som er galt
Avatar billede _petrucci Nybegynder
10. december 2001 - 11:09 #30
woops...fik det til at virke nu!

SQL = \"SELECT * FROM Brugere WHERE ID = \" & ID

WHERE ID --> Kolonnen i databasen hed BRUGER_ID :)

Mange tak for hjælpen nute + i andre :)
Avatar billede nute Nybegynder
10. december 2001 - 11:12 #31
fino...

selv takk...
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