Avatar billede daloon Nybegynder
05. maj 2002 - 13:48 Der er 42 kommentarer og
1 løsning

SQL problemer...

Hejsa.

Jeg noget bøvl med en ret kringlet SQL sætning.

Jeg har en database hvor der er en masse folk listet under forskellige afdelinger.

Jeg er ved at lave en formular hvor alle afdelinger bliver listet, men kun én gang...derfor har jeg brugt SQL sætningen:
"SELECT afdeling FROM Plusbrugere GROUP by afdeling;"

Det virker osse fint med følgende løkke:
<%
  Do
strEmail = objRS("Email")

%>
<INPUT TYPE="checkbox" NAME="recipient" value="<%= strEmail %>"><%= objRS("Afdeling")%><BR>

<%
ObjRS.MoveNext
Loop While Not ObjRS.EOF

%>

Men nu vil jeg gerne ha' løkken osse inkludere alle folks e-mail adresser fra de forskellige afdelinger...så når man vælger "IT afdelingen" så skriver den alle e-mail adresse fra denne afdeling ind i <%= strEmail %>.

Hvordan skal sådan en SQL sætning se ud?
Og giver det jeg skriver overhovedet mening? :)
Avatar billede nute Nybegynder
05. maj 2002 - 13:51 #1
du må jo spesifisere kolonnen i din SQL !!

SELECT afdeling, Email FROM Plusbrugere GROUP by afdeling
Avatar billede daloon Nybegynder
05. maj 2002 - 13:54 #2
Den SQL sætning var osse mit første bud...men det virker ikke...jeg får denne fejl:

[Microsoft][ODBC Microsoft Access-driver] Du har forsøgt at køre en forespørgsel, der ikke medtager det angivne udtryk "Email" som en del af en aggregatfunktion.
Avatar billede daloon Nybegynder
05. maj 2002 - 13:55 #3
men ja...Kolonnerne hedder Email og Afdeling
Avatar billede nute Nybegynder
05. maj 2002 - 13:58 #4
inneholder din tabell en kolonne som heter 'Email' ?
Avatar billede _just4fun_ Nybegynder
05. maj 2002 - 13:58 #5
Group by kræver at du kører f.eks. en Count(*) eller noget i din query. Måske er det Order du mener :-)
Avatar billede daloon Nybegynder
05. maj 2002 - 13:59 #6
nute: ja, det har jeg
Avatar billede daloon Nybegynder
05. maj 2002 - 14:04 #7
Order by dur ikke...så bliver afdelingerne bare listet ud i en pærevælling :)
Avatar billede nute Nybegynder
05. maj 2002 - 14:05 #8
just4fun >> nja...man kan saktens bruke 'group by' på tekst kolonner, men resultatet er jo at man grupperer mange identiske kolonner om til en kolonne. Når man så henter ut flere kolonner enn den man grupperer på, så har man ikke noe sted å legge de utfyllende informasjoner. Så...du har forsåvidt rett, men du skriver det litt galt ;-)

daloon >> prøv

SELECT afdeling, Email FROM Plusbrugere ORDER BY afdeling
Avatar billede _just4fun_ Nybegynder
05. maj 2002 - 14:06 #9
Så du siger at :
"SELECT afdeling, Email FROM Plusbrugere ORDER by afdeling, Email"
bliver listet i en pærevælling :-)....hmm
Avatar billede nute Nybegynder
05. maj 2002 - 14:07 #10
daloon >> men hva er det du egentlig ønsker ? hvordan skal ditt output være ? noe ála dette:

<input type="checkbox" value="mail@dresse.dk,mail@dresse2.dk,mail@dresse3.dk"> IT-Avdeling<br/>
<input type="checkbox" value="mail@dresse.dk,mail@dresse2.dk,mail@dresse3.dk"> Annen avdeling
Avatar billede _just4fun_ Nybegynder
05. maj 2002 - 14:12 #11
nute >> urRight!
Jeg kan sku bare aldrig finde ud af hvor meget man skal sige for ikke at forvirre mere end nødvendigt :-)
Avatar billede daloon Nybegynder
05. maj 2002 - 14:12 #12
nute: Nemlig!
Avatar billede nute Nybegynder
05. maj 2002 - 14:20 #13
well...så er du nødt til å trikse litt:

<%
strAfdeling = ""
firstIteration = true
Do

    if( firstIteration ) then
        strAfdeling = objRS("Afdeling")
        firstIteration = false
    end if
   
    strEmail = strEmail & objRS("Email")
   
    if( objRS("Afdeling") <> strAfdeling ) then
        %>
        <INPUT TYPE="checkbox" NAME="recipient" value="<%= strEmail %>"><%= strAfdeling %><BR>
        <%
        strAfdeling = objRS("Afdeling")
    else
        strEmail = strEmail & ","
    end if

    <%
    ObjRS.MoveNext
Loop While Not ObjRS.EOF

%>
Avatar billede daloon Nybegynder
05. maj 2002 - 14:24 #14
okay..tak...jeg prøver lige :)
Avatar billede daloon Nybegynder
05. maj 2002 - 14:32 #15
ehm..hvad blev vi enige om at SQL sætningen skulle være?

"SELECT afdeling, Email FROM Plusbrugere ORDER by afdeling, Email;" ?
Avatar billede nute Nybegynder
05. maj 2002 - 14:36 #16
uups...sorry :-)

SELECT afdeling, Email FROM Plusbrugere ORDER by afdeling
Avatar billede daloon Nybegynder
05. maj 2002 - 14:37 #17
Jeg tror heller ikke jeg gjorde mig helt klar før...

jeg ønsker noget i denne retning:

<input type="checkbox" value="it@dresse.dk,it@dresse2.dk,it@dresse3.dk"> IT-Avdeling<br/>
<input type="checkbox" value="Annen@dresse.dk,Annen@dresse2.dk,Annen@dresse3.dk"> Annen avdeling
Avatar billede nute Nybegynder
05. maj 2002 - 14:39 #18
har du testet det script jeg sendte ?

/nute
Avatar billede daloon Nybegynder
05. maj 2002 - 14:39 #19
håber ikke jeg gi'r dig alt for meget arbejde :)
Avatar billede daloon Nybegynder
05. maj 2002 - 14:42 #20
ja...det fungere..men ikke rigigt..dette bliver resultatet:

<INPUT TYPE="checkbox" NAME="recipient" value="mma@plus.dk;rert, ert;we;ww@ww.com, dd;wewww;ll@plus.dk;beh@plus.dk">Direktion<BR>
       
<INPUT TYPE="checkbox" NAME="recipient" value="mma@plus.dk;rert, ert;we;ww@ww.com,dd;wewww;ll@plus.dk;beh@plus.dklhk@plus.dk;ml@plus.dk;mkl@plus.dk;la@plus.dk">Ekspedition<BR>

som du kan se bliver e-mail adresserne gentaget i de 2 afdelinger.....under IT checkboxen er det kun IT mail-adresserne der skal listes..osv
Avatar billede daloon Nybegynder
05. maj 2002 - 14:56 #21
nute: jeg ofre gerne flere points, hvis du kan få det til at virke.
Avatar billede nute Nybegynder
05. maj 2002 - 15:01 #22
nåja...jeg kan se at man er nødt til å kode litt ekstra...denne fungerer for meg:

ObjRS.open SQL, objConn, 1, 3


strAfdeling = ""
firstIteration = true
while NOT ObjRS.EOF

    if( firstIteration ) then
        strAfdeling = ObjRS("Afdeling")
        firstIteration = false
    end if
   
   
    if( ObjRS("Afdeling") <> strAfdeling ) then
        strEmail = LEFT( strEmail, LEN( strEmail ) - 1 )
        %>
        <INPUT TYPE="checkbox" NAME="recipient" value="<%= strEmail %>"><%= strAfdeling %><BR>
        <%
        strAfdeling = objRS("Afdeling")
        strEmail = objRS("Email") & ","
    else
        strEmail = strEmail & objRS("Email") & ","
    end if

    ObjRS.MoveNext
    if( ObjRS.EOF ) then
    strEmail = LEFT( strEmail, LEN( strEmail ) - 1 )
        %>
        <INPUT TYPE="checkbox" NAME="recipient" value="<%= strEmail %>"><%= strAfdeling %><BR>
        <%
    end if
wend
objConn.Close
%>

/nute
Avatar billede daloon Nybegynder
05. maj 2002 - 15:09 #23
okay kool...prøver lige
Avatar billede daloon Nybegynder
05. maj 2002 - 15:16 #24
okay..nu er den der næsten :)

nu kan jeg bare ikke Request.form("recipient") fra den næste side..

koden på den næste side er:

<%@LANGUAGE = VBSCRIPT%> <html>
<body>

<%

' Get the form data
name        = Request.Form("name")
senderEmail = Request.Form("email")
subject    = "Regarding " & Request.Form("subject")
recipient  = Request.Form("recipient")
body        = Request.Form("body")

' Create the JMail message Object
set msg = Server.CreateOBject( "JMail.Message" )

' Set logging to true to ease any potential debugging
' And set silent to true as we wish to handle our errors ourself
msg.Logging = true
msg.silent = true

' Enter the sender data
msg.From = senderEmail
msg.FromName = name

' Note that as addRecipient is method and not
' a property, we do not use an equals ( = ) sign
msg.AddRecipient recipient

' The subject of the message
msg.Subject = subject

' And the body
msg.body = body

' Now send the message, using the indicated mailserver
'if not msg.Send("mail.amigamos.com" ) then
'    Response.write "<pre>" & msg.log & "</pre>"
'else
'    Response.write "Message sent succesfully!"
response.write recipient & "ddd"

'end if


' And we're done! the message has been sent.


%>
</body>
</html>
Avatar billede daloon Nybegynder
05. maj 2002 - 15:20 #25
som du kan se har jeg disablet selve mail funktion...
"response.write recipient" giver intet resultat
Avatar billede nute Nybegynder
05. maj 2002 - 15:22 #26
jeg har ingen problemer med å requeste innholdet i 'recipient'. Hvilken method har du satt på din form ? det skal være 'post':

<form name="" method="post">
Avatar billede daloon Nybegynder
05. maj 2002 - 15:36 #27
okay...det var method="post".....men den sender stadig ingen mail.

Jeg bruger dette script: http://tech.dimac.net/Websites/dimac/Website/Products/w3JMail/{8096E230-7744-4045-A2CD-F50179DCC365}?exId={83FCD061-FF2C-4496-91B0-37A742C1FBCD}

men hvis du ikke har tid, så bare lad mig give dig dine points.

Tak for hjælpen
Avatar billede nute Nybegynder
05. maj 2002 - 15:40 #28
du mangler jo å sende mailen !!

legg til

msg.Execute

til sist i sitt script
Avatar billede daloon Nybegynder
05. maj 2002 - 15:46 #29
doh! ja :D
nu virker det!!

skriv et svar så du kan få dine points
Avatar billede nute Nybegynder
05. maj 2002 - 15:48 #30
et svar så du kan få dine points
Avatar billede daloon Nybegynder
05. maj 2002 - 15:53 #31
liige et aller aller sidste spørgsmål..

e-mail scriptet (ikke dit) melder en fejl. Tilsyneladende kan den ikke finde ud af at sende til flere mails, fordi tegnet imellem mail'sne er forkert...test@test.com,test2@test.com virker ikke, og test@test;test2@test.com virker heller ikke...har du et forslag? :)
Avatar billede daloon Nybegynder
05. maj 2002 - 16:00 #32
help :)
Avatar billede nute Nybegynder
05. maj 2002 - 16:04 #33
send mailsene en og en. Lag en array av alle recipients:

<%

' Get the form data
name        = Request.Form("name")
senderEmail = Request.Form("email")
subject    = "Regarding " & Request.Form("subject")
recipient  = Request.Form("recipient")
body        = Request.Form("body")

' Create the JMail message Object
set msg = Server.CreateOBject( "JMail.Message" )

' Set logging to true to ease any potential debugging
' And set silent to true as we wish to handle our errors ourself
msg.Logging = true
msg.silent = true

' Enter the sender data
msg.From = senderEmail
msg.FromName = name

' The subject of the message
msg.Subject = subject

' And the body
msg.body = body
recArr = SPLIT( recipient, "," )

for i = 0 to UBOUND( recArr )
  msg.AddRecipient recipient
  msg.Execute
next
Avatar billede daloon Nybegynder
05. maj 2002 - 16:13 #34
altså sådan? :

<%

' Get the form data
name        = Request.Form("name")
senderEmail = Request.Form("email")
subject    = "Regarding " & Request.Form("subject")
recipient  = Request.Form("recipient")
body        = Request.Form("body")

' Create the JMail message Object
set msg = Server.CreateOBject( "JMail.Message" )

' Set logging to true to ease any potential debugging
' And set silent to true as we wish to handle our errors ourself
msg.Logging = true
msg.silent = true

' Enter the sender data
msg.From = senderEmail
msg.FromName = name

' Note that as addRecipient is method and not
' a property, we do not use an equals ( = ) sign
msg.AddRecipient recipient

' The subject of the message
msg.Subject = subject

' And the body
msg.body = body
recArr = SPLIT( recipient, "," )

for i = 0 to UBOUND( recArr )
  msg.AddRecipient recipient
  msg.Send("mail.amigamos.com")
next

' Now send the message, using the indicated mailserver
if not msg.Send("mail.amigamos.com" ) then
    Response.write "<pre>" & msg.log & "</pre>"
else
    Response.write "Message sent succesfully!"
end if


' And we're done! the message has been sent.


%>
Avatar billede daloon Nybegynder
05. maj 2002 - 16:13 #35
msg.execute skal ikke bruges..
Avatar billede daloon Nybegynder
05. maj 2002 - 16:15 #36
hovsa...dette skal nok ikke med...men det virker stadig ikke

' Now send the message, using the indicated mailserver
if not msg.Send("mail.amigamos.com" ) then
    Response.write "<pre>" & msg.log & "</pre>"
else
    Response.write "Message sent succesfully!"
end if
Avatar billede nute Nybegynder
05. maj 2002 - 16:15 #37
hvorfor skal den ikke det ?
Avatar billede daloon Nybegynder
05. maj 2002 - 16:18 #38
msg.execute?

tjaa....enkelte mails sender den fint uden msg.execute
Avatar billede daloon Nybegynder
05. maj 2002 - 16:21 #39
helt præcis får jeg denne fejl-meddelse:

-> MAIL FROM:
  <- 250 OK ... Sender ok
  -> RCPT TO:webmaster@amigamos.com,rob@rob-design.dk
<- 550 ... we do not relay
  -> RCPT TO:webmaster@amigamos.com,rob@rob-design.dk
<- 550 ... we do not relay
  -> RCPT TO:webmaster@amigamos.com,rob@rob-design.dk
<- 550 ... we do not relay
  -> DATA
<- 503 Incorrect command sequence
Error: 503 Incorrect command sequence
.execute()
Avatar billede daloon Nybegynder
05. maj 2002 - 16:21 #40
kunne det tænkes der er fordi mail serveren ikke understøtter "masse" mails?
Avatar billede nute Nybegynder
05. maj 2002 - 16:22 #41
det tyder jo på en feil med den server du sender fra. Du har ikke lov til å relay'e...det er ingenting galt med scriptet
Avatar billede daloon Nybegynder
05. maj 2002 - 16:24 #42
cool...så ved jeg det!!

du kender vel ikke en server der gør, så jeg lige kan teste? :)

Men ellers mange tak for hjælpen nute!!!!
Avatar billede nute Nybegynder
05. maj 2002 - 16:33 #43
"du kender vel ikke en server der gør" -- nope...
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