01. december 2003 - 15:11Der er
22 kommentarer og 1 løsning
Nyhedsbrev med flere grupper
Halløjsa i det lille ganske land.....
Jeg har nu siddet i mit lille skur ude på den fynske hede og spekuleret så længe at folk tror jeg er en bæver pga. skæg og lange negle.... Nå til det seriøse:
JEg har en base, hvor jeg har en tabel med tilmeldte mailadresser, samt et autoID-felt.
Derudover har jeg også en tabel der hedder grupper, hvor folk kan tilmelde sig nogle forskellige kategorier. FX: driftstatus, nyheder, ølbæller osv.
Hvis jeg så vælge at sende et nyhedsbrev til fx: driftstatus og ølbæller, vil den jo som sagt sende en mail til alle tilknyttede mails til de forskellige grupper, men hvis der er en bruger der er tilknyttet både driftstatus og ølbæller vil denne bruger modtage en mail 2 gange (flere hvis det er flere grupper...)....
Hvordan kan jeg lave et tjek på at brugeren kun optræder en enkelt gang???
Brugeren ligger i et MEMO-felt (notat), hvor brugerne ligger kommaseparerede....
Lad høre vismænd
;)
PS: Komponent der skal benyttes til at sende mails: Jmail Vi finder bare ud af points'ene
Nu optræder 8 i alle 3 grupper som skal sendes til. Når man har lavet tjekket har jeg fx. en variabel til hvor alle er samlet uden dubletter: grpstr = "4,6,9,5,2,3,45,32,154,15,98,15,48,1,8"
Herefter henter jeg bare mailsene fra basen via id'en igennem en løkke....
Siden du har brugerne samlet i en streng, kan du gøre som her: http://www.eksperten.dk/spm/427428 Tjekke med InStr om du allerede har tilføjet brugerens id til strengen, og hvis du har, ja så tilføjer du den naturligvis ikke igen :)
Men så skal brugernes id'er stå i seperate felter, så det (select ditinct) dur altså ikke, hvis de, som jeg har forstået det, står i en kommasepareret streng inde i db'en.
Hmmmmm, jeg kiggede på den reference du gav, men jeg synes ikke lige at jeg kan få det til at fungere.... Jeg har brygget denne lille test samme:
<% testgrpstr = "98,32,15,48,1,8,1,45,32,8,154,15,5,4,6,9,5,2,3,8" grpstr = split(testgrpstr, ",") antal = Ubound(grpstr) i = 0 response.write "Den gamle string er: " & testgrpstr & "<br><br>Den nye string er: " do while i <= antal if InStr(testgrpstr, grpstr(i)) = 0 then sentto = sentto & grpstr(i) &"," end if i = i + 1 loop response.write sentto %>
Du skal teste på strengen sentto, hvor du jo tilføjer dem, og du skal inkludere kommaet i betingelsen (ellers tæller 154 som både 1, 5, 15 osv.) - altså sådan her:
<% testgrpstr = "98,32,15,48,1,8,1,45,32,8,154,15,5,4,6,9,5,2,3,8" grpstr = split(testgrpstr, ",") antal = Ubound(grpstr) i = 0 response.write "Den gamle string er: " & testgrpstr & "<br><br>Den nye string er: " do while i <= antal if InStr(sentto, "," & grpstr(i) & ",") = 0 then sentto = sentto & grpstr(i) & "," end if i = i + 1 loop response.write sentto %>
Den gamle string er: 1,2,3,4,8,1,4,7 Den nye string er: 1,2,3,4,8,1,7
Kildekode:
hent2 = "1,2,3,4,8,1,4,7" response.write hent2 & "<br><br>" grpstr = split(hent2, ",") antal = Ubound(grpstr) i = 0 response.write "Den gamle string er: " & hent2 & "<br> Den nye string er: " do while i <= antal if InStr(sendTil, "," & grpstr(i) & ",") = 0 then sendTil = sendTil & grpstr(i) & "," end if i = i + 1 loop If Right(sendTil, 1) = "," Then sendTil = Left(sendTil, (Len(sendTil) - 1)) End If response.write sendTil
Og når du så har flere strenge, som du har i eksemplet fra 01/12-2003 15:51:35, så kan du f.eks. slå dem sammen til én variabel før du kører sorteringen. Altså så hent2 = grp1 & grp2 & grp3
ahhh, det var dejligt, men solen skærer godt nok meget i øjnene ;)
Synes godt om
Ny brugerNybegynder
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.