Avatar billede emiliasl Nybegynder
23. februar 2003 - 20:38 Der er 10 kommentarer og
1 løsning

Slet en record fra en db

Hej

Jeg er ved at lave en mailingliste hvor jeg bruger oplysninger fra en db,jeg har fået lavet så folk kan tilmelde sig. Nu ønsker jeg at lave det så folk ved at skrive sin email i en form og sende den kan slette sig fra listen, men jeg har ingen ide om hvordan jeg gør.(er lige begyndt med asp) Er  der nogle der kan hjælpe mig??
Avatar billede eagleeye Praktikant
23. februar 2003 - 20:41 #1
I stedet for at lave en INSERT SQL lavaer du en DELETE:

email = Request.form("email")
SQL = "DELETE FORM mailinglistetabel WHERE email = '" & email & "'"
Connection.Execute(SQL)


Response.write "Du er nu slettet fra millisten."
Avatar billede emiliasl Nybegynder
23. februar 2003 - 20:47 #2
Min tilmeld ser ud som så
<head>
<meta http-equiv="Content-Language" content="da">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Tilmeldning til Hjertelisten</title>
</head>

<body link="#993333" vlink="#993333" alink="#993333" bgcolor="#FCFCFC">

<p><b><font size="2" face="Arial">Tilmelding til Hjerteliste</font></b></p>
<p><font face="Arial" size="2">Ved at udfylde og sende denne side vil du/I blive
en del af Hjertelisten</font></p>
<p>&nbsp;</p>
<form method="POST" action="--WEBBOT-SELF--" onsubmit="location.href='_derived/nortbots.htm';return false;" language="JavaScript" name="FrontPage_Form1" webbot-onSubmit="return FrontPage_Form1_Validator(this)">
  <!--webbot bot="SaveResults" u-file="_private/form_results.csv" s-format="TEXT/CSV" s-label-fields="TRUE" startspan --><input TYPE="hidden" NAME="VTI-GROUP" VALUE="0"><!--webbot bot="SaveResults" endspan i-checksum="43374" --><p>
  Navn&nbsp;&nbsp;
  <!--webbot bot="Validation" b-value-required="TRUE" i-minimum-length="5" i-maximum-length="50" --><input type="text" name="Navn" size="20" maxlength="50"></p>
  <p>Email.&nbsp; <input type="text" name="Email" size="20"></p>
  <p>&nbsp;</p>
  <p><input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2"></p>
</form>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>

</body>

</html>
Avatar billede eagleeye Praktikant
23. februar 2003 - 20:53 #3
Du laver en side magen til den og i stedet for at skrive Tilmelding kan du skrive Afmelding. Så kan du give den et ande filnavn.

Du må også havde en fil som gemmer mail adressen.

Gemmes de i en database?
Avatar billede emiliasl Nybegynder
23. februar 2003 - 21:10 #4
Den side som du ser her over gemmer navn og email i en database
Avatar billede eagleeye Praktikant
23. februar 2003 - 21:35 #5
Den fil du har vist er en form hvor man kan indtaste sin email adresse.
For at gemme i databasen skal være en connection og man skal hendte data fra formen.

Jeg ved ikke hvilken fil som gemmer normalt kan man se det i form tagen i action feltet. Men der står --WEBBOT-SELF--" og så er der en function som loader filen nortbot.htm:

<form method="POST" action="--WEBBOT-SELF--" onsubmit="location.href='_derived/nortbots.htm';return false;" language="JavaScript" name="FrontPage_Form1" webbot-onSubmit="return FrontPage_Form1_Validator(this)">
Avatar billede emiliasl Nybegynder
23. februar 2003 - 21:41 #6
Ja som før sagt så kender jeg li nul til asp men den fil som er der virker, der kommer en nu record i db'en hver gang jeg prøver.

Det første som du skrev virker det kun i en sql database?? og hvis nej hvordan for jeg det til at virke, jeg er villig til at give flere point hvis du kan hjælpe mig
Avatar billede eagleeye Praktikant
23. februar 2003 - 21:50 #7
SQL virker på alle databaser. Eks på dit script:

<html>
<head></head>
<body>
<%
'Tjek om formen er send til siden.
if Request.Servervariables("REQUEST_METHOD") = "POST" then
  Set Conn = Server.CreateObject("ADODB.Connection")

  'I linien med ConnStr = ..... skal du rette
  ' Server.Mappath("db1.mdb")  --> til at henvise til din database
  ' Hvis ASP fil og Database fil ligge i samme folder så ret db1.mbd til nanvet på din database fil.
  ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("db1.mdb")

  Conn.Open ConnStr
  email = Replace(Request.form("email"),"'","")
  SQL = "DELETE FORM mailinglistetabel WHERE email = '" & email & "'"
  Conn.Execute(SQL)
  Conn.Close
  Response.write "Du er nu slettet fra mail listen"
end if
%>
<p><b><font size="2" face="Arial">Afmelding til Hjerteliste</font></b></p>
<p><font face="Arial" size="2">Ved at udfylde og sende denne side vil du/I blive afmeldt Hjertelisten</font></p>
<p>&nbsp;</p>
<form method="POST" action="">
  <p>Email.&nbsp; <input type="text" name="Email" size="20"></p>
  <p>&nbsp;</p>
  <p><input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2"></p>
</form>
</body>
</html>
Avatar billede emiliasl Nybegynder
23. februar 2003 - 22:45 #8
Det virker ikke jeg, når jeg har indtastet en email adr og trykker send får jeg en fejl der siger at siden ikke kan vises.
Alt kode mellem <% og %> er rød er det for di der er fejl i det eller??
Min database hedder hjertelisten.mdb men i den db er der 2 lister. en der hedder liste og en der hedder tildmeldte hvordan er jeg sikker på at slette i den rigtige??
Avatar billede eagleeye Praktikant
24. februar 2003 - 11:49 #9
Din side skal hedde .asp for ASP koden kan udføres.

Har du flere mail lister, det kunne lyde sådan når du har en tabel som hedder liste. Den tabel du skal slette fra må helt klart være tildmeldte. Hvis du har flere mail lister så er der sikkert en kolonne i tildmeldte  som hedder noget med listeID/liste som indeholder et tal for den maillisten man er tilmeldt så skal det også ind i SQL'en eks kunne være sådan her:

SQL = "DELETE FORM tildmeldte WHERE liste = 1 AND email = '" & email & "'"

Hvis du kun har en mail liste er det ikke nødvendigt at havde det med i SQLen som sletter med det vil være mest korrekt hvis du engang vil udvide med flere mail lister.
Avatar billede emiliasl Nybegynder
24. februar 2003 - 19:42 #10
Jeg har omdøbt siden til .asp men nu kan siden ikke vises, den se ud som følger:

<html>
<head></head>
<body>
<%
if Request.Servervariables("REQUEST_METHOD") = "POST" then
Set Conn = Server.CreateObject("ADODB.Connection")


ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("hjertelisten.mdb")
Conn.Open ConnStr
email = Replace(Request.form("email"),"'","")
SQL = "DELETE FORM mailinglistetabel WHERE email = '" & email & "'"
Conn.Execute(SQL) 
Conn.Close
Response.write "Du er nu slettet fra mail listen"
end if
%>
<p><b><font size="2" face="Arial">Afmelding til Hjerteliste</font></b></p>
<p><font face="Arial" size="2">Ved at udfylde og sende denne side vil du/I blive afmeldt
Hjertelisten</font></p>
<p>&nbsp;</p>
<form method="POST" action="">
<p>Email.&nbsp; <input type="text" name="Email" size="20"></p>
<p>&nbsp;</p> 
<p><input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil"
name="B2"></p>
</form>
</body>
</html>
Avatar billede emiliasl Nybegynder
25. februar 2003 - 20:13 #11
Jeg kan ikke få det til at virke men du skal have dine point aligevel, Takfor Hjælpen
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