Avatar billede hansen Nybegynder
10. februar 2004 - 20:57 Der er 7 kommentarer og
1 løsning

Find brugere i Array

Jeg har i en database nogle brugere som jeg vil sende en mail til, de er registreret i db'en så de har mulighed for at tilmelde sig flere maillister.
De er f.eks. tilmeldt med dette array 1,3,5 som fortæller mig at de er abonnement på mailen til IT,ALMEN,NYT, mine spørgsmål er disse,

Hvordan looper jeg gennem et array og finder 1 og 3, og sender en mail til dem ?

Hvordan klarer jeg at en bruger afmelder sig maillisten ALMEN(3), altså hvordan beholder jeg 1 og 5 ved en update ?


Kan du hjælpe her ville det være fint, skal du bruge mere, så bare sig til.
Avatar billede eagleeye Praktikant
10. februar 2004 - 21:05 #1
Jeg er ikke helt med, vil du sende til alle maillister på en gang eller vælge de bruger som er i IT listen?

Man looper igennet et array ved:

str = "1,3,5"
arr = Split(str, ",")
for i = lbound(arr) to ubound(arr)
  response.write arr(i)
next
Avatar billede hansen Nybegynder
10. februar 2004 - 21:31 #2
Det kan være at jeg har en mail jeg vil have ud til 1 og 5, der skal derfor loopes gennem alle brugere på listen, en bruger har i et db felt angives hvilke maillister de er tilmeldt på, f.eks. 1,3,5, her vil jeg gerne kunne sende ud til 1 og 3, denne bruger får derfor to ens mails, det er der dog ikke noget at gøre ved i denne omgang, det kan jeg efterfølgende tjekke i en SQL og destinct ting.

Gennemløb af DB
Find alle brugere der har 1 og 3 i rs("mailgruppe")
send en mail til dem
osv.
Avatar billede eagleeye Praktikant
10. februar 2004 - 21:39 #3
ok er det sådan noget som dette, den hendte alle brugerne ud og looper igennem dem sende en mail til dem som har enten 1 eller 3 i mailgruppe:

mailgruppe ="1,3"
gruppearr = Split(mailgruppe, ",")
set rs = Conn.Execute("select * from brugere")
do while not rs.EOF
  for i = lbound(gruppearr) to ubound(gruppearr)
    if inStr(","&rs("mailgruppe")&",", ","&gruppearr(i)&",") > 0 then
      'send mail
    end if
  next
  rs.Movenext
loop
Avatar billede eagleeye Praktikant
10. februar 2004 - 21:41 #4
Du kunne overveje at lave det med SQL eks

mailtil = 1
sql = "select * from bruger where inStr(1,','&mailgruppe&',', ',"&mailtil&",'") > 0"
Avatar billede hansen Nybegynder
17. februar 2004 - 21:27 #5
Hej eagleeye

Dit eksempel herunder virker til dels, når bare der er mere end et tal i array'et, står der bare 1 i værdi så skulle to brugere have en e-mail men det sker ikke, den springer let og elegant hen over.
Har du et tip til hvad der kan være gået galt her ?

mailgruppe ="1,3"
gruppearr = Split(mailgruppe, ",")
set rs = Conn.Execute("select * from brugere")
do while not rs.EOF
  for i = lbound(gruppearr) to ubound(gruppearr)
    if inStr(","&rs("mailgruppe")&",", ","&gruppearr(i)&",") > 0 then
      'send mail
    end if
  next
  rs.Movenext
loop
Avatar billede eagleeye Praktikant
19. februar 2004 - 00:00 #6
Det forstår jeg ikke helt, der skule ikke umiddelbart være forskel på et eller flere tal i gruppe. Prøv at ændre if sætningen:

if inStr(","&Replace(rs("mailgruppe")," ","")&",", ","&gruppearr(i)&",") > 0 then
Avatar billede hansen Nybegynder
19. februar 2004 - 21:05 #7
Så virker det, sender du et svar ?
Avatar billede eagleeye Praktikant
14. august 2004 - 19:41 #8
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