Avatar billede jacand Nybegynder
14. juli 2002 - 14:18 Der er 4 kommentarer og
1 løsning

Database loop og Jmail

Hvordan laver man et udtræk fra en database og laver et loop, så den henter alle poster og sender dem med Jmail
Jeg har prøvet med nedenstående kode, men den sender ingen mail og der kommer ingen fejl :-?

------------------------------------------------

If Request.Querystring("Submit2") = "opdater" then
mode = Request.QueryString("fdato")
mode2 = Request.QueryString("tdato")
Set con = Server.CreateObject("ADODB.Connection")
con.Open strDSN
sql = "SELECT * FROM chat WHERE ddato between '" & mode & "' AND '" & mode2 & "' ORDER BY tid asc"
Set RS = Con.Execute(Sql)
fra = RS("fra")
til = rs("til")
besked = rs("besked")
tid = rs("tid")
fradato = Request.QueryString("fdato")
tildato = Request.QueryString("tdato")

response.write fra & til & besked & tid & fradato & tildato

Set JMail = Server.CreateObject("JMail.SMTPMail")
    JMail.ServerAddress = mailserver
        JMail.Sender = mailsender
        JMail.SenderName = mailsendername
    JMail.Subject = "Chatlog fra: " & fradato & " til: " & tildato
    JMail.AddRecipient mail
    JMail.Body = "Hej " & vbcrlf & vbcrlf    '
    JMail.Body = JMail.Body & "Her er den log du lige har bestilt" & vbcrlf & vbcrlf
if rs.eof then
    JMail.Body = JMail.Body & "der er ingen log" & vbcrlf & "tjek de datoer du har bestilt log fra og til :) "
Do While Not RS.EOF
    JMail.Body = JMail.Body & tid & " - " & fra & " - " & til & vbcrlf
    JMail.Body = JMail.Body & besked & vbcrlf & vbcrlf
    RS.MoveNext
    Loop
    JMail.Priority = 1
    'JMail.silent = false
    JMail.Execute
    JMail.Close
    Set JMail = Nothing   


rs.close
set rs = Nothing
end if
end if

%>
Avatar billede soes Nybegynder
14. juli 2002 - 14:22 #1
mangler du ikke en else
if rs.eof then
....
else
Do while not rs.eof
...

/Søren Søndergård
Avatar billede soes Nybegynder
14. juli 2002 - 14:23 #2
du skal nok også lige flytte den sidste end if så den kommer lige efter dit loop
Avatar billede jacand Nybegynder
14. juli 2002 - 14:28 #3
hmm nu laver den bare et loop på den første post.
der er 7 poster den skulle sende men den sender den 1 post 7 gange :)


----------------------------------------------------
If Request.Querystring("Submit2") = "opdater" then
mode = Request.QueryString("fdato")
mode2 = Request.QueryString("tdato")
Set con = Server.CreateObject("ADODB.Connection")
con.Open strDSN
sql = "SELECT * FROM chat WHERE ddato between '" & mode & "' AND '" & mode2 & "' ORDER BY tid asc"
Set RS = Con.Execute(Sql)
fra = RS("fra")
til = rs("til")
besked = rs("besked")
tid = rs("tid")
fradato = Request.QueryString("fdato")
tildato = Request.QueryString("tdato")

Set JMail = Server.CreateObject("JMail.SMTPMail")
    JMail.ServerAddress = mailserver
        JMail.Sender = mailsender
        JMail.SenderName = mailsendername
    JMail.Subject = "Chatlog fra: " & fradato & " til: " & tildato
    JMail.AddRecipient mail
    JMail.Body = "Hej " & vbcrlf & vbcrlf    '
    JMail.Body = JMail.Body & "Her er den log du lige har bestilt" & vbcrlf & vbcrlf
if rs.eof then
    JMail.Body = JMail.Body & "der er ingen log" & vbcrlf & "tjek de datoer du har bestilt log fra og til :) "
else
Do While Not RS.EOF
    JMail.Body = JMail.Body & tid & " - " & fra & " - " & til & vbcrlf
    JMail.Body = JMail.Body & besked & vbcrlf & vbcrlf
    RS.MoveNext
    Loop
    end if
    JMail.Priority = 1
    'JMail.silent = false
    JMail.Execute
    JMail.Close
    Set JMail = Nothing   


rs.close
set rs = Nothing

end if

%>
Avatar billede soes Nybegynder
14. juli 2002 - 14:34 #4
i stedet for at skrive variablen tid skal du bruge det aktuelle recordset. sådan her:
JMail.Body = JMail.Body & Rs("tid") & " - " & Rs("Fra") & " - " & Rs("Til") & vbcrlf
JMail.Body = JMail.Body & Rs("Beksed") & vbcrlf & vbcrlf
Avatar billede jacand Nybegynder
14. juli 2002 - 15:14 #5
Nu virker det
Tak for hjælpen :)

------------------------------------------
If Request.Querystring("Submit2") = "opdater" then
mode = Request.QueryString("fdato")
mode2 = Request.QueryString("tdato")
Set con = Server.CreateObject("ADODB.Connection")
con.Open strDSN
sql = "SELECT * FROM chat WHERE ddato between '" & mode & "' AND '" & mode2 & "' ORDER BY tid asc"
Set RS = Con.Execute(Sql)
fradato = Request.QueryString("fdato")
tildato = Request.QueryString("tdato")
Set JMail = Server.CreateObject("JMail.SMTPMail")
    JMail.ServerAddress = mailserver
        JMail.Sender = mailsender
        JMail.SenderName = mailsendername
    JMail.Subject = "Chatlog fra: " & fradato & " til: " & tildato
    JMail.AddRecipient mail
    JMail.Body = "Hej " & vbcrlf & vbcrlf    '
    JMail.Body = JMail.Body & "Her er den log du lige har bestilt" & vbcrlf & vbcrlf
if rs.eof then
    JMail.Body = JMail.Body & "der er ingen log" & vbcrlf & "tjek de datoer du har bestilt log fra og til :) "
else
Do While Not RS.EOF
    JMail.Body = JMail.Body & rs("tid") & " - " & RS("fra") & " - " & rs("¨til") & vbcrlf
    JMail.Body = JMail.Body & rs("besked") & vbcrlf & vbcrlf
    RS.MoveNext
    Loop
    end if
    JMail.Priority = 1
    JMail.Execute
    JMail.Close
    Set JMail = Nothing   
rs.close
set rs = Nothing
end if
%>
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