Avatar billede hehlers Nybegynder
22. maj 2007 - 14:02 Der er 19 kommentarer og
1 løsning

Finde emails til nyhedsmail i anden tabel

Hejsa

Jeg har et system, hvori jeg skal sende en opgørelse ud til de brugere, hvis konto ikke er 0.

Mit problem er bare at brugerens email ligger i en anden tabel kaldet tbl_user. Dvs. at først skal alle brugerne, hvis konto er forskellig fra 0 udvælges og derefter skal deres emailadresser så hentes i tbl_user, hvor login_id i tbl_user er det samme som login_id i tbl_konto.

Håber i forstår hvad jeg mener.

Jeg har nedenstående kode, hvori jeg mangler at få valgt emailen.
----------------------------------
strSQL = "SELECT konto_ialt from tbl_konto where konto_ialt <> 0"
      Set res = Conn.Execute(strSQL)

    if request.Form("TestMail") = "ON" then
          arrEmail = request.form("TestMailAdr")
    else
          arrEmail = res.GetRows()
    end if

    Conn.Close
      Set Conn = Nothing
           

    Set objMail = Server.CreateObject("JMail.SMTPMail")
    objMail.Silent = True
    objMail.ServerAddress = "mailserver"
    objMail.Sender = "minamil"
    objMail.Subject = "faktura"
     
      For num = 0 to Ubound(arrEmail,2)
          objMail.AddRecipient(arrEmail(0, num))
          objMail.HTMLBody = "<html><head><title></title></head><body vlink='#666666' link='#000000' bgcolor='#ffffff'>Dette er din Soccerzone faktura. Du skylder: " & res("konto_ialt") &"kr.</body></html>"

      If objMail.Execute Then
        Response.Write "<font color=green>" & arrEmail(0, num) & " (" & num & ") OK</font><br>"
      Else
        Response.Write "<font color=red>" & arrEmail(0, num) & " (" & num & ") FEJL</font><br>"
      End If
      objMail.ClearRecipients
    Next
    Set objMail = Nothing
Avatar billede kalp Novice
22. maj 2007 - 14:14 #1
strSQL = "SELECT email from tbl_user,tbl_konto where konto_ialt <> 0 and tbl_user.login_id = tb1_konto.login_id"

du skal rette email til navnet på email kolonnen..

ved ikke om det var hvad du mente.
Avatar billede hehlers Nybegynder
22. maj 2007 - 14:33 #2
Hej Kalp

Jeg tror faktisk det var det jeg mente. ;)  Jeg skal bruge de personers email fra tbl_user, som har en konto_ialt som er forskellig fra 0 i tbl_konto.

Desværre fejler koden stadig:

"No value given for one or more required parameters. "
Avatar billede hehlers Nybegynder
22. maj 2007 - 14:34 #3
DBen ser sådan her ud:

TBL_USER
navn
email
login_id
osv.

TBL_KONTO
konto_ialt
login_id
Avatar billede kalp Novice
22. maj 2007 - 16:13 #4
konto_ialt er et talfelt?

jeg kan ikke se hvorfor du får den fejl når du ikke skal indsætte værdier.. så er du sikker på den fejler ved kørsel af sql'en?

tjek linje:)
Avatar billede hehlers Nybegynder
23. maj 2007 - 09:17 #5
Jeps, konto_ialt er et talfelt. Kan det være det?
Avatar billede kalp Novice
23. maj 2007 - 09:41 #6
du svarede ikke på hvilken linje den brokker sig ved:)
Avatar billede hehlers Nybegynder
23. maj 2007 - 09:47 #7
hov sry. ;)

Denne her:
strSQL = "SELECT email from tbl_user,tbl_konto where konto_ialt <> 0 and tbl_user.login_id = tb1_konto.login_id"
Avatar billede kalp Novice
23. maj 2007 - 10:03 #8
kan jo se linjen er magen til det jeg skrev tidligere.. så er du sikker på at kolonnenavnet hedder email som jeg har skrevet?
kolonnenavnene skal selvfølgelig findes i din database for at den virker
Avatar billede hehlers Nybegynder
23. maj 2007 - 10:25 #9
HOV, det er da fordi der er et 1-tal istedet for et l til sidst!!! HAHA

Nu får jeg dog en fejl i denne linie her:

Du skylder: " & res("konto_ialt") &"kr.
Avatar billede kalp Novice
23. maj 2007 - 10:33 #10
strSQL = "SELECT email,konto_ialt from tb1_user,tb1_konto where konto_ialt <> 0 and tb1_user.login_id = tb1_konto.login_id"

:)
Avatar billede hehlers Nybegynder
23. maj 2007 - 10:40 #11
Den fejler desværre stadig i denne linie her:
res("konto_ialt")


Følgende fejl:
Item cannot be found in the collection corresponding to the requested name or ordinal.
Avatar billede kalp Novice
23. maj 2007 - 10:56 #12
looper du overhovedet igennem res?
du kan prøve at skrive res.next
før den linje der.. men det udskriver kun den første i listen.
Avatar billede hehlers Nybegynder
23. maj 2007 - 11:20 #13
Jeg sætter emails i et array:

strSQL = "SELECT email,konto_ialt from tbl_user,tbl_konto where konto_ialt <> 0 and tbl_user.login_id = tbl_konto.login_id"
    Set res = Conn.Execute(strSQL)

    if request.Form("TestMail") = "ON" then
          arrEmail = request.form("TestMailAdr")
    else
          arrEmail = res.GetRows()
    end if

    Conn.Close
      Set Conn = Nothing
           
    Set objMail = Server.CreateObject("JMail.SMTPMail")
    objMail.Silent = True
    objMail.ServerAddress = "mailserver"
    objMail.Sender = "minmail"
    objMail.Subject = "faktura"
     
      For num = 0 to Ubound(arrEmail,2)
          objMail.AddRecipient(arrEmail(0, num))
          objMail.HTMLBody = "<html><head><title></title></head><body vlink='#666666' link='#000000' bgcolor='#ffffff'>Dette er din Soccerzone faktura. Du skylder: " & res("konto_ialt") &"kr.</body></html>"

      If objMail.Execute Then
        Response.Write "<font color=green>" & arrEmail(0, num) & " (" & num & ") OK</font><br>"
      Else
        Response.Write "<font color=red>" & arrEmail(0, num) & " (" & num & ") FEJL</font><br>"
      End If
      objMail.ClearRecipients
    Next
    Set objMail = Nothing
----------------------------------------------
Gør jeg noget galt her?
Avatar billede hehlers Nybegynder
29. maj 2007 - 13:10 #14
Øv, var min kode helt ud i hampen? :)
Avatar billede kalp Novice
29. maj 2007 - 21:28 #15
mystisk... har haft svaret men den må åbenbart ikke være blevet sendt:S

men dit problem lægger i at du har gemt alle dine emails i arrayet ja, men du mangler jo også at gemme alle konti_ialt i et array også:)
Avatar billede hehlers Nybegynder
30. maj 2007 - 08:43 #16
hehe Kalp, sjov nok har jeg også været udsat for at kommentarer af og til ikke bliver postet.

Anyway, jeg er en noob til arrays, og aner derfor ikke hvordan jeg skal lave det.

Men det har vel noget med det her at gøre?

For num = 0 to Ubound(arrEmail,2)
          objMail.AddRecipient(arrEmail(0, num))
Avatar billede kalp Novice
30. maj 2007 - 22:21 #17
ja, men må indrømme, at jeg ikke kan se hvorfor du først hiver det over i et array... nemmest er bare at løbe "res" igennem som er et resultset.. altså en masse rækker med 2 kolonner (email og konto_ialt)
og det er jo lige præcis disse du gerne vil have udskrevet:)
Avatar billede hehlers Nybegynder
31. maj 2007 - 10:08 #18
Du siger noget!. :)

Det er rettet nu og virker til UG. Tusind tak for hjælpen Kalp.
Avatar billede hehlers Nybegynder
31. maj 2007 - 10:17 #19
Forresten....

Hvis jeg nu også vil have valgt feltet navn i tbl_user, hvordan skal sql'en så være?

Det skal siges at NAVN står i både tbl_konto og tbl_user.
Avatar billede kalp Novice
31. maj 2007 - 11:21 #20
hvis det er denne sql vi blev enige om
strSQL = "SELECT email,konto_ialt from tbl_user,tbl_konto where konto_ialt <> 0 and tbl_user.login_id = tbl_konto.login_id"

så skal den bare se sådan ud

strSQL = "SELECT email,konto_ialt,tbl_user.navn from tbl_user,tbl_konto where konto_ialt <> 0 and tbl_user.login_id = tbl_konto.login_id"

hvis du ikke få navn ud med den så bare skriv den sådan her

strSQL = "SELECT email,konto_ialt,tbl_user.navn as navn from tbl_user,tbl_konto where konto_ialt <> 0 and tbl_user.login_id = tbl_konto.login_id"
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