Avatar billede Slettet bruger
07. december 2003 - 19:01 Der er 9 kommentarer og
1 løsning

Email ved nye indlæg

Hejsa,

Jeg har lavet et forum, hvor jeg vil give deltagerne mulighed fora t modtage emails når der er nye indlæg i en tråd hvor de deltager.

Hvordan gøres dette smartest?
Avatar billede Slettet bruger
07. december 2003 - 19:05 #1
Jeg tænkte på at lave en tabel <emailservice> med 'email' og 'postid' som attributter, som angiver hvilken post der er tale om og hvilke emailadresser der skal sendes til..
Avatar billede netro Nybegynder
07. december 2003 - 20:25 #2
Når der laves et nyt indlæg i en tråd, finder du alle de indlæg, der refererer til denne og foretager en join med brugertabellen.

F.eks.:

Nyt indlæg i tråd nr. 234

Set rs = obj.Execute("Select b.Brugernavn, b.Email From Indlaeg i Left Join Brugere b On i.BrugerID = b.BrugerID Where i.TraadID = 234 Group By b.Brugernavn, b.Email")
While Not rs.EOF
  'Send mail til rs("Brugernavn") / rs("Email")
  rs.Movenext
Wend
Avatar billede Slettet bruger
09. december 2003 - 14:12 #3
netro > takker, men det er ikke helt godt, for hvad nu hvis man ikke ønsker email tilsendt?
Der skal være mulighed for at ændre det løbende ligesom her på sitet :)
Avatar billede netro Nybegynder
09. december 2003 - 14:24 #4
Så har du et felt i brugertabellen, der f.eks. hedder EmailOK, hvor 0 svarer til ikke-accepteret og 1 til accepteret.

Set rs = obj.Execute("Select b.Brugernavn, b.Email From Indlaeg i Left Join Brugere b On i.BrugerID = b.BrugerID Where i.TraadID = 234 And b.EmailOK = 1 Group By b.Brugernavn, b.Email")
Avatar billede Slettet bruger
09. december 2003 - 15:31 #5
netro > Så bliver det jo en overordnet boolsk variabel men det skal være en mulighed der går på HVER bruger i HVER tråd
Avatar billede netro Nybegynder
09. december 2003 - 15:58 #6
Ja, det gør det. Jeg vidste ikke, at det skulle være en komplet kopi af Ekspertens system ;o)

Men så synes jeg, at du skal gøre, som du selv foreslår 07/12-2003 19:05:48.
Lav en tabel med TRÅDID og BRUGERID. Hvis en bruger, ønsker at modtage e-mails i en tråd, indsætter du trådens ID og brugerens ID heri. Hvis en person framelder e-mails, sletter du denne post igen.

Din SQL vil nu se nogenlunde således ud:

Select b.Brugernavn, b.Email From emailservice e Inner Join Brugere b On e.BrugerID = b.BrugerID Where e.TraadID = 234 Group By b.Brugernavn, b.Email
Avatar billede netro Nybegynder
09. december 2003 - 16:01 #7
Ovenstående er baseret på, at der som standard ikke modtages e-mails (modsat Eksperten). Dvs. at brugeren selv skal anmode om e-mails i hver tråd, hvorved der indsættes en post i "emailservice".
Avatar billede netro Nybegynder
09. december 2003 - 16:09 #8
Hvis du ønsker, at der som standard modtages e-mails, skal du i stedet indsætte en post, hvis brugeren IKKE ønsker at modtage. Din SQL vil så se ud som følger.

Select b.Brugernavn, b.Email From brugere b Left Join emailservice e On b.BrugerID = e.BrugerID And e.TraadID = 234 Where e.BrugerID Is Null Group By b.Brugernavn, b.Email
Avatar billede Slettet bruger
28. januar 2004 - 16:43 #9
svar?
Avatar billede netro Nybegynder
30. januar 2004 - 04:37 #10
Ok...
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