Avatar billede 81morten Nybegynder
21. januar 2005 - 23:27 Der er 56 kommentarer og
1 løsning

Indsætte data til bruger som er logget ind.

hej eksperter.

jeg er stødt ind i endnu et lille problem.
jeg vil indsætte data til brugeren som er logget ind jeg har prøvet med følgende men uden held


<%
strSQL = "Insert into admin WHERE (login='" & login & "'") values('" & Request.Form("url1, url2, url3, url4, url5, url6, url7, url8") & "')"
conn.execute(strSQL)
%>

men den kommer med følgende fejl.

Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0401)
Slut på sætning var ventet
/opreturl.asp, line 21, column 57
strSQL = "Insert into admin WHERE (login='" & login & "'") values('" & Request.Form("url1, url2, url3, url4, url5, url6, url7, url8") & "')"
--------------------------------------------------------^

håber lige i kan hjælpe.
Avatar billede apo Praktikant
21. januar 2005 - 23:51 #1
Prøv med:

strSQL = "Insert into admin WHERE (login='" & login & "') values('" & Request.Form("url1, url2, url3, url4, url5, url6, url7, url8") & "')"

Apo
Avatar billede 81morten Nybegynder
21. januar 2005 - 23:56 #2
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i INSERT INTO-sætningen.
/opreturl.asp, line 22

så kommer den med denne fejl
Avatar billede apo Praktikant
21. januar 2005 - 23:59 #3
Jeg har ikke før set at man kan hente input via Request.Form("url1, url2, osv."). Er du sikker på at det virker?

Apo
Avatar billede 81morten Nybegynder
22. januar 2005 - 00:03 #4
når jeg opretter brugeren bruger jeg requeest form men andet ved jeg ikke lige hvad skulle man ellers gøre ?
Avatar billede gammelhat Nybegynder
22. januar 2005 - 00:06 #5
smid where hen sidst i sætningen
Avatar billede meltinis Nybegynder
22. januar 2005 - 00:08 #6
Du skal indsætte request.Form for alle individuelt, medmindre det er alle fra din form og de er i rigtig rækkefølge så kan du lave en For each... men det første er lidt mere overskueligt.
Prøv med:
strSQL = "Insert into admin values('" & Request.Form("url1")&"','" & Request.Form("url2")&"','" & Request.Form("url3")&"','" & Request.Form("url4")&"','" & Request.Form("url5")&"','" & Request.Form("url6")&"','" & Request.Form("url7")&"','" & Request.Form("url8")&"') WHERE (login='" & login & "')"
Avatar billede 81morten Nybegynder
22. januar 2005 - 00:09 #7
strSQL = "Insert into admin values('" & Request.Form("url1, url2, url3, url4, url5, url6, url7, url8") & "')"  WHERE (login='" & login & "'")

nu prøvede jeg sådan men det virkede ikke. ellers prøv lige og lav den hvis du har tid og lyst gammelhat
Avatar billede apo Praktikant
22. januar 2005 - 00:13 #8
Hvordan ser felterne i din database ud?
Avatar billede 81morten Nybegynder
22. januar 2005 - 00:13 #9
meltinis

den beder mig om at sætte et ; ind i slutnigrn af sætningen men hvor???
Avatar billede gammelhat Nybegynder
22. januar 2005 - 00:14 #10
meltinis, er inde på noget af det rigtige
Avatar billede 81morten Nybegynder
22. januar 2005 - 00:15 #11
login, password, fornavn, url1, url2, url3, url4, url5, url6, url7, url8
Avatar billede apo Praktikant
22. januar 2005 - 00:15 #12
... Du skal jo indsætte værdierne i et eller flere felter :-)

strSQL = "INSERT into admin (felt1, felt2, felt3, osv.) values('" & felt1 & "','" & felt2 & "','" & felt3 & "')"
Conn.Execute(strSQL)
Avatar billede apo Praktikant
22. januar 2005 - 00:19 #13
Så må det vel blive noget a'la det her:

strSQL = "INSERT into admin (login, password, fornavn, url1, url2, url3, url4, url5, url6, url7, url8) values('" & Login & "','" & Password & "','" & fornavn & "','" & url1 & "','" & url2 & "','" & url3 & "','" & url4 & "','" & url5 & "','" & url6 & "','" & url7 & "','" & url8 & "')"
Conn.Execute(strSQL)

Apo
Avatar billede 81morten Nybegynder
22. januar 2005 - 00:20 #14
jeg prøvede at skrive det som apo siger altså


<%strSQL = "Insert into admin (url1, url2,url3,url4, url5, url6, url7, url8) values('" & Request.Form("url1")&"','" & Request.Form("url2")&"','" & Request.Form("url3")&"','" & Request.Form("url4")&"','" & Request.Form("url5")&"','" & Request.Form("url6")&"','" & Request.Form("url7")&"','" & Request.Form("url8")&"') WHERE (login='" & login & "')"
conn.execute(strSQL)

men den beder stadig om et ; i slutningrn af sætningen

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der mangler et semikolon (;) i slutningen af SQL-sætningen.
/opreturl.asp, line 21
Avatar billede apo Praktikant
22. januar 2005 - 00:20 #15
Glemte lige at du gør din SQL mest overskuelig ved at dimensionere variablerne inden du sætter værdierne ind i SQLen:

url1 = Request.Form("url1")
url2 = Request.Form("url2")
osv.

Apo
Avatar billede apo Praktikant
22. januar 2005 - 00:30 #16
Hmm... Jeg har aldrig været ude for at den manglede et semikolon. Der er åbenbart stadig noget forkert i SQLen, men jeg kan ikke lige gennemskue hvad det er...
Avatar billede apo Praktikant
22. januar 2005 - 00:34 #17
Der må være en fejl et af de steder hvor du henter input fra (url1, url2, login, osv.)

Er du sikker på at den henter værdierne rigtigt?
Avatar billede gammelhat Nybegynder
22. januar 2005 - 00:36 #18
vi sover i timen, man brugere ikke 'where' ved insert

where bruges ved 'update'


apo> når alle felter udfyldes, er det faktisk valgfrit om man angiver navnene på felterne
Avatar billede apo Praktikant
22. januar 2005 - 00:38 #19
gammelhat > Jeg undrede mig også over at WHERE overhovedet indgik i sætningen :-D

Okay, det var jeg ikke klar over (de valgfrie felter)

Apo
Avatar billede 81morten Nybegynder
22. januar 2005 - 01:13 #20
undskyld jeg var lige væk hvis jeg så bare skal update min database hvad skal jeg så skrive.
Avatar billede gammelhat Nybegynder
22. januar 2005 - 01:16 #21
update admin set url1='bla', url2='blabla' where login='hej'
Avatar billede apo Praktikant
22. januar 2005 - 01:16 #22
Jeg tror at det er bedst at forklare det ved at henvise dig til dette link:

http://html.dk/tutorials/asp/lektion22.asp

Apo
Avatar billede 81morten Nybegynder
22. januar 2005 - 01:25 #23
altså

update admin set url1=Request.Form("url1") url2=request.form("url2") where="login='" & login & "'"


eller er det forstået forkert.
Avatar billede apo Praktikant
22. januar 2005 - 01:30 #24
strSQL = "UPDATE admin SET url1=" & Request.Form("url1") & ", url2=" & Request.Form("url2") & " WHERE login=" & login
Avatar billede apo Praktikant
22. januar 2005 - 01:32 #25
Eller for at gøre SQLen mere overskuelig:

Url1 = Request.Form("url1")
Url2 = Request.Form("url2")

strSQL = "UPDATE admin SET url1=" & Url1 & ", url2=" & Url2 & " WHERE login=" & login

Apo
Avatar billede apo Praktikant
22. januar 2005 - 01:38 #26
Eller mere overskueligt:

strSQL = "UPDATE admin SET "
strSQL = strSQL & "Url1='" & Url1 & "', "
strSQL = strSQL & "Url2='" & Url2 & "' "
strSQL = strSQL & " WHERE login=" & login
Avatar billede 81morten Nybegynder
22. januar 2005 - 01:54 #27
den bliver ved med at komme med fejlmeldinger af forskellig art. det er ikke lige til hva.
Avatar billede apo Praktikant
22. januar 2005 - 01:55 #28
Hvad melder den nu?
Avatar billede 81morten Nybegynder
22. januar 2005 - 01:58 #29
nåh nu fik jeg den til ikke at komme op med fejlmeldinger men istedet skriver den ikke noget i databasen.
Avatar billede apo Praktikant
22. januar 2005 - 01:59 #30
Prøv at give mig den præcise SQL, du har brugt...
Avatar billede 81morten Nybegynder
22. januar 2005 - 02:01 #31
<table border="1">
  <tr>
    <td width="100" height="500">

<%
' ADODB connection objektet
Set Conn = Server.CreateObject("ADODB.Connection")
' Husk at angive den rigtige sti til din database
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database.mdb")
' Åben databaseforbindelsen
Conn.Open DSN
%>
<%


strSQL = "UPDATE admin SET "
strSQL = strSQL & "Url1='" & Url1 & "', "
strSQL = strSQL & "Url2='" & Url2 & "' "
strSQL = strSQL & " WHERE login='" & login & "'"

conn.Execute(strSQL)
%>








<form action="opreturl.asp" method="post">

link1:<input type="text" name="url1"><hr>

link1:<input type="text" name="url2"><hr>

link1:<input type="text" name="url3"><hr>

link1:<input type="text" name="url4"><hr>

link1:<input type="text" name="url5"><hr>

link1:<input type="text" name="url6"><hr>

link1:<input type="text" name="url7"><hr>

link1:<input type="text" name="url8"><hr>



<input type="submit" value="Gem">
</form>
</td>
Avatar billede apo Praktikant
22. januar 2005 - 02:08 #32
Denne burde virke:

Dim Url1, Url2, Url3, Url4, Url5, Url6, Url7, Url8

Url1 = Request.Form("url1")
Url2 = Request.Form("url2")
Url3 = Request.Form("url3")
Url4 = Request.Form("url4")
Url5 = Request.Form("url5")
Url6 = Request.Form("url6")
Url7 = Request.Form("url7")
Url8 = Request.Form("url8")

strSQL = "UPDATE admin SET "
strSQL = strSQL & "Url1='" & Url1 & "', "
strSQL = strSQL & "Url2='" & Url2 & "', "
strSQL = strSQL & "Url3='" & Url3 & "', "
strSQL = strSQL & "Url4='" & Url4 & "', "
strSQL = strSQL & "Url5='" & Url5 & "', "
strSQL = strSQL & "Url6='" & Url6 & "', "
strSQL = strSQL & "Url7='" & Url7 & "', "
strSQL = strSQL & "Url8='" & Url8 & "' "
strSQL = strSQL & "WHERE login='" & login
Conn.Execute(strSQL)

(bare erstat den med din nuværende SQL)

Apo
Avatar billede 81morten Nybegynder
22. januar 2005 - 02:12 #33
den kom med følgende fejl

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i strengen i forespørgselsudtrykket "login='".
/opreturl.asp, line 42
Avatar billede apo Praktikant
22. januar 2005 - 02:14 #34
Ja, det er fordi der er en ' for meget. Prøv denne:

Dim Url1, Url2, Url3, Url4, Url5, Url6, Url7, Url8

Url1 = Request.Form("url1")
Url2 = Request.Form("url2")
Url3 = Request.Form("url3")
Url4 = Request.Form("url4")
Url5 = Request.Form("url5")
Url6 = Request.Form("url6")
Url7 = Request.Form("url7")
Url8 = Request.Form("url8")

strSQL = "UPDATE admin SET "
strSQL = strSQL & "Url1='" & Url1 & "', "
strSQL = strSQL & "Url2='" & Url2 & "', "
strSQL = strSQL & "Url3='" & Url3 & "', "
strSQL = strSQL & "Url4='" & Url4 & "', "
strSQL = strSQL & "Url5='" & Url5 & "', "
strSQL = strSQL & "Url6='" & Url6 & "', "
strSQL = strSQL & "Url7='" & Url7 & "', "
strSQL = strSQL & "Url8='" & Url8 & "' "
strSQL = strSQL & "WHERE login=" & login
Conn.Execute(strSQL)

Apo
Avatar billede 81morten Nybegynder
22. januar 2005 - 02:17 #35
den kommer frem men opdaterer ikke databasen hmm.
Avatar billede apo Praktikant
22. januar 2005 - 02:19 #36
Hvilken type er dine databasefelter (for url1, url2, osv.)?
Avatar billede 81morten Nybegynder
22. januar 2005 - 02:22 #37
tekst
Avatar billede 81morten Nybegynder
22. januar 2005 - 02:24 #38
where login = login kan man ikke bruge session istedet eller er et lige meget
Avatar billede apo Praktikant
22. januar 2005 - 02:27 #39
Det skal de også være...

Du er sikker på at stien til databasen er korrekt?
Avatar billede apo Praktikant
22. januar 2005 - 02:28 #40
... Hvis du har 'login' liggende i en session, skal der stå:

login=" & Session("login")
Avatar billede 81morten Nybegynder
22. januar 2005 - 02:28 #41
ja 100 % men ellers ville den vel også fortælle mig at den ikke kunne finde databasen
Avatar billede 81morten Nybegynder
22. januar 2005 - 02:32 #42
Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 1.
nu kom den med en ny fejl.
Avatar billede apo Praktikant
22. januar 2005 - 02:33 #43
Ja, det ville du selvfølgelig få en fejlmelding på.

Har du udskiftet login med Session("login")?
Avatar billede apo Praktikant
22. januar 2005 - 02:34 #44
Det er fordi den mangler en værdi formentlig fra et felt (input)
Avatar billede 81morten Nybegynder
22. januar 2005 - 02:34 #45
Microsoft][ODBC Microsoft Access-driver] Datatyperne stemmer ikke overens i kriterieudtrykket.
/url_script.asp, line 31

og endnu en
i den første var det med session(login)
den næste session(id)
Avatar billede apo Praktikant
22. januar 2005 - 02:36 #46
Hmm... Hvor på din side henter du værdien 'id'?
Avatar billede apo Praktikant
22. januar 2005 - 02:36 #47
Prøv at smide hele sidens kode herind...
Avatar billede 81morten Nybegynder
22. januar 2005 - 02:37 #48
det hvor jeg logger ind ser det således ud

session("login") = true
  Session("ID") = dbrs("ID")
Avatar billede apo Praktikant
22. januar 2005 - 02:41 #49
Prøv i SQLen at udskifte:

login=" & Session("login")

Med:

Id=" & Session("ID")
Avatar billede apo Praktikant
22. januar 2005 - 02:43 #50
Jeg vidste ikke at du brugte ID som reference til brugeren (det havde du ikke fortalt)?

Databasen skal jo kende referencen på brugeren, og hvis referencen er et ID, skal der stå WHERE ID... osv.
Avatar billede 81morten Nybegynder
22. januar 2005 - 02:44 #51
smid et svar du er jo en gud det virkede jeg syntes bare jeg havde prøvet alt kan man egentlig give flere point det er jeg godt nok glad for mange tak rigtig mange tak
Avatar billede 81morten Nybegynder
22. januar 2005 - 02:45 #52
jeg er heller ikke helt inde i asp men syntes det er spændende det kan jo være en dag man ligefrem bliver bedre til det
Avatar billede apo Praktikant
22. januar 2005 - 02:46 #53
Det var så det der var problemet? Det gik pludseligt op for mig, at det kunne være det, da du begyndte at nævne ID (det er jo en vigtig detalje at fortælle :-D )

Jeg smed et svar helt øverst, da jeg troede at løsningen var lige om hjørnet - Jeg tog fejl ;-)
Avatar billede 81morten Nybegynder
22. januar 2005 - 02:49 #54
jeg vil gerne lige sige mange tak for alt den tid du har brugt på mig mine fortæl dig ej før til sidst og klokken er godt tre. mange tak meget taknemmelig... :-)
Avatar billede apo Praktikant
22. januar 2005 - 02:50 #55
Du kan lære meget om ASP ved at studere de tutorials der findes her: http://html.dk/tutorials/asp/

... Og ved at kigge på nogle af de mange spørgsmål i kategorien 'ASP' her på Eksperten. Der er mange guldkorn, og meget inspiration at finde.

Men jeg er glad for at du fik det til at virke til sidst :-)
Avatar billede apo Praktikant
22. januar 2005 - 02:52 #56
Velbekomme, og tak for points :-)

Apo
Avatar billede apo Praktikant
22. januar 2005 - 03:04 #57
gammelhat > Du førte os jo frem til at det skulle være UPDATE i stedet for INSERT (da vi sov i timen ;-) ). Giv lige besked her i tråden, hvis du vil have nogle af pointene (jeg holder øje de næste par dage) :-)

Apo
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