Avatar billede kkd Nybegynder
14. marts 2003 - 11:11 Der er 9 kommentarer og
1 løsning

Gemme flere data i database

Hej...

Jeg har følgende script på min side, der ska indsætte værdierne fra fra to form-felter ("navn" og "email") i en databasetabel. Men det er kun form-feltet "email" der bliver indsat. Hvad skal ændres?
    <%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/db/mailliste.mdb")
Conn.Open DSN

strSQL = "Insert into mailliste (Navn) values('" & Request.Form("navn") & "')"
strSQL = "Insert into mailliste (Email) values('" & Request.Form("email") & "')"
Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>
Avatar billede mr.meincke Nybegynder
14. marts 2003 - 11:23 #1
strSQL = "Insert into mailliste (Navn,Email) values('" & Request.Form("navn") & "','" & Request.Form("email") & "')"
Avatar billede p_johansen Nybegynder
14. marts 2003 - 11:25 #2
Fordi du har 2 x strSQL
du skal samle til een sætning

eller (selvom det ikke er nogen optimal løsning)

Omdøbe de ene til strSQL2 og lave en
Conn.Execute(strSQL2)
Avatar billede p_johansen Nybegynder
14. marts 2003 - 11:25 #3
Som ovenfor ....
i'm fucking slow...
Avatar billede mr.meincke Nybegynder
14. marts 2003 - 11:27 #4
lol ;)
Avatar billede mr.meincke Nybegynder
14. marts 2003 - 11:29 #5
Og mit var et svar...
Avatar billede mr.meincke Nybegynder
14. marts 2003 - 11:39 #6
takker =)
Avatar billede kkd Nybegynder
14. marts 2003 - 12:08 #7
Jeg har sat kolonnen Email til ikke at acceptere dublicates. Hvordan sender jeg bruger til en fejl-side hvis vedkommende indtaster en værdi, der allerede findes. Nu kommer der bare en fejlmeddelelse frem, som ikke er særlig fiks!
Avatar billede mr.meincke Nybegynder
14. marts 2003 - 18:34 #8
Set rs = Conn.Execute("SELECT FROM Mailliste WHERE Email='" & Request.Form("email") & "'")

if (rs.eof or rs.bof) then
  // Kode hvis emailen ikke findes i databasen
else
  Response.Write "Emailen er allerade i databasen"
end if

Set rs = Nothing
rs.Close
Avatar billede kkd Nybegynder
20. marts 2003 - 19:58 #9
Hvorfan skal den se ud?

Nu ser det sådan ud:
    <%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/db/mailliste.mdb")
Conn.Open DSN

Set rs = Conn.Execute("SELECT FROM Mailliste WHERE Email='" & Request.Form("email") & "'")

if (rs.eof or rs.bof) then
  // Kode hvis emailen ikke findes i databasen
else
  Response.Write "Emailen er allerade tilmeldt"
end if

Set rs = Nothing
rs.Close
strSQL = "Insert into mailliste (Navn,Email) values('" & Request.Form("navn") & "','" & Request.Form("email") & "')"
Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>
og jeg får følgende fejlmeddelelse:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect.

/mailliste-indsaet.asp, line 18

Linie 18 er: Set rs = Conn.Execute("SELECT FROM Mailliste WHERE Email='" & Request.Form("email") & "'")
Avatar billede mr.meincke Nybegynder
21. marts 2003 - 01:06 #10
takker for points..! ;)
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