webForumDet fria alternativet

Skicka till alla som varit inloggade senaste månaden

Databaser & SQL

9 svar · 378 visningar · startad av WebbisNet

Medlem sedan feb. 20032 027 inlägg
Frågan#1

Hur får jag detta att skickas till alla medlemmar som varit inloggade senaste månaden, använder MySQL

<%set mail1=objConn.Execute("select userID from tblUsers where datum=")

varName=request("toUser")
varMailID = FriendlySQL(Request.Form ("txtMailID"))
varHeadline = FriendlySQL(Request.Form ("txtHeadline"))
varDatum = Date()
varTime = Time()
varMessage = FriendlySQL(Request.Form("txtMessage"))

SET objConn = connect()

do until mail1.eof
varReciever = mail1("userID")
	SQL = "INSERT INTO tblUsers_imail"
	SQL = SQL & "(sender, reciever, Headline,message, mailDate,mailTime, mailRead, Nyhetsbrev) "
	SQL = SQL & "VALUES(1,'"& varReciever &"','"&varHeadline &"','"&varMessage &"','"& varDatum &"','"& varTime &"', 1, 1)"
	response.write "<br>"
	response.write SQL
	response.write "<br>"
	response.write varReciever
	response.end
'objConn.Execute(SQL)

mail1.movenext
loop%>
Medlem sedan dec. 200012 464 inlägg
#2

Läs om funktionen date_sub i manualen.

Medlem sedan feb. 20032 027 inlägg
#3

LarsG skrev:

Läs om funktionen date_sub i manualen.

när jag skriver ut användarID för den medlem det ska till så ser jag bara mitt egna, var är felet?

Medlem sedan dec. 200012 464 inlägg
#4

Hur ser din fråga ut? Vilket resultat får du om du kör den utanför ditt skript?

Medlem sedan feb. 20032 027 inlägg
#5

LarsG skrev:

Hur ser din fråga ut? Vilket resultat får du om du kör den utanför ditt skript?

set mail1=objConn.Execute("select userID, datum from tblUsers where datum >= date_add(curdate(), interval -2 month)")

do until mail1.eof
varReciever = mail1("userID")
SQL = "INSERT INTO tblUsers_imail"
SQL = SQL & "(sender, reciever, Headline,message, mailDate,mailTime, mailRead, Nyhetsbrev) "
SQL = SQL & "VALUES(1,'"& varReciever &"','"&varHeadline &"','"&varMessage &"','"& varDatum &"','"& varTime &"', 1, 1)"
response.write SQL
response.end
'objConn.Execute(SQL)
mail1.movenext

INSERT INTO tblUsers_imail(sender, reciever, Headline,message, mailDate,mailTime, mailRead, Nyhetsbrev) VALUES(1,'1','testa','testar','2007-05-17','17:05:35', 1, 1)

Medlem sedan dec. 19996 721 inlägg
#6

Lös allt med en fråga

SQL = "INSERT INTO tblUsers_imail (sender, reciever, Headline,message, mailDate,mailTime, mailRead, Nyhetsbrev) "
SQL = SQL & "SELECT (1,userID,'"&varHeadline &"','"&varMessage &"','"& varDatum &"','"& varTime &"', 1, 1 FROM tblUsers where datum >= DATE_SUB(CURDATE(),INTERVAL 2 MONTH)"
Medlem sedan feb. 20032 027 inlägg
#7

emission skrev:

Lös allt med en fråga

SQL = "INSERT INTO tblUsers_imail (sender, reciever, Headline,message, mailDate,mailTime, mailRead, Nyhetsbrev) "
SQL = SQL & "SELECT (1,userID,'"&varHeadline &"','"&varMessage &"','"& varDatum &"','"& varTime &"', 1, 1 FROM tblUsers where datum >= DATE_SUB(CURDATE(),INTERVAL 2 MONTH)"

hur gör jag med loopen isåfall?

Medlem sedan dec. 19996 721 inlägg
#8

WebbisNet skrev:

hur gör jag med loopen isåfall?

Inte. Ingen loop.

Medlem sedan feb. 20032 027 inlägg
#9

kanske låter dum nu men hur får jag ut alla inloggade inom 60 dagar utan loop?

Medlem sedan dec. 19996 721 inlägg
#10

I ditt exempel plockar du ut användarna, och i en loop stoppar du in dem i en annan tabell. Precis detta löser min SQL-sats. Sedan måste du förstås plocka ut dem ur tblUsers_imail när mailen ska skickas.

280 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
151 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)