webForumDet fria alternativet

Info med avseende på dag

ASP

9 svar · 129 visningar · startad av Gimbo

Medlem sedan dec. 20001 626 inlägg
Frågan#1

Hejsan,

Jag har ett script som slumpar ut skämt från databasen, men nu är det som så at jag vill att detta script skall hämta ett skämt per dag, dvs ett nytt skämt för varje ny dag...

så här ser min kod ut:

<%
' Här skapar vi en dsn-less connection mot qoute
Set Connect=server.CreateObject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("databasen.mdb")
Connect.Open DSNtemp

'Vi slumpar fram ett skämt och skriver ut det.
Set RS_count = Connect.Execute ("SELECT COUNT(*) AS count FROM skämt")
Randomize
wisdom = INT(RND*RS_count("count"))
Set r=Connect.Execute("SELECT * FROM skämt")
r.Move wisdom
Response.Write r("skamt")
'Vi stänger databasen
Connect.close
Set Connect=nothing 
%>

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

"Det starka är inte att aldrig kunna falla, det starta är att kunna resa sig efter ett fall"

Medlem sedan dec. 200012 464 inlägg
#2

Du får spara datum och skämtet i en application-variabel och kontrollera datumet mot dagens datum.

<%
if  cdate(application("jokedate")) <> date then
' Här skapar vi en dsn-less connection mot qoute
Set Connect=server.CreateObject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("databasen.mdb")
Connect.Open DSNtemp
'Vi slumpar fram ett skämt och skriver ut det.
Set RS_count = Connect.Execute ("SELECT COUNT(*) AS count FROM skämt")
Randomize
wisdom = INT(RND*RS_count("count"))
Set r=Connect.Execute("SELECT * FROM skämt")
r.Move wisdom
application.lock
application("jokedate") = date
application("joke") = rs("skamt")
application.unlock
'Vi stänger databasen
Connect.close
Set Connect=nothing 
end if
%>

response.write application("joke")

------------------
essentitia preter non sans multiplicandum

Medlem sedan dec. 20001 626 inlägg
#3

hmmm... alltså i tabellen ska jag ha 3st kolumner, ID, Skämt och datum

och varje skämt ska ha ett datum 2002-01-01 nästa skämt datumet 2002-01-02 osv. eller hur ska man gå tillväga för det blir rätt så jobbigt att skriva in 365skämt och datumet för varje skämt...

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

"Det starka är inte att aldrig kunna falla, det starta är att kunna resa sig efter ett fall"

Medlem sedan juni 20019 024 inlägg
#4

Det är precis det LarsGs kod gör, som du bad om i första inlägget alltså! ;)

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

[Redigerat av Pace den 12 jan 2002]

Medlem sedan dec. 20001 626 inlägg
#5

okej men hur ska datumet skrivas, ska det skrivas som jag visa dvs i denna form 2002-01-01 osv eller på ngt annat sätt?

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

"Det starka är inte att aldrig kunna falla, det starta är att kunna resa sig efter ett fall"

Medlem sedan juni 20019 024 inlägg
#6

Det kvittar. Eftersom dagens datum inte är detsamma som 2001-01-01 kommer det automatiskt att slumpas fram ett nytt skämt. Men om nu dagens datum skulle vara detsamma som 2001-01-01 så tas skämtet från Applcation-variabeln.

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

Medlem sedan dec. 20001 626 inlägg
#7

Jag ska göra kunskaprutor istället...

Så här ser min tabell i databasen ut:
Tabellens namn är kunskap och kolumnerna är ID, kunskap, datum

och så här ser kopplingen ut:

<%
if cdate(application("datum")) <> date then
' Här skapar vi en dsn-less connection mot qoute
Set Connect=server.CreateObject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("databasen.mdb")
Connect.Open DSNtemp
'Vi slumpar fram ett skämt och skriver ut det.
Set RS_count = Connect.Execute ("SELECT COUNT(*) AS count FROM kunskap")
Randomize
wisdom = INT(RND*RS_count("count"))
Set r=Connect.Execute("SELECT * FROM kunskap")
r.Move Visdom
application.lock
application("datum")= date
application("kunskap") = rs("kunskap")
application.unlock
'Vi stänger databasen
Connect.Close
Set Connect=nothing
End if

Jag får det inte att fungera jag har listat upp några grejer i databasen, till varje ID har jag en kunskapstext och sedan ett datum, men det fungerar ju inte... Den skriver inte ut ngt från databasen...

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

"Det starka är inte att aldrig kunna falla, det starta är att kunna resa sig efter ett fall"

Medlem sedan juni 20019 024 inlägg
#8

Svengelska!

wisdom = INT(RND*RS_count("count"))
Set r=Connect.Execute("SELECT * FROM kunskap")
r.Move [b]V[/b]isdom

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

Medlem sedan dec. 20001 626 inlägg
#9

heheh, har gjort det till rent Engelska dvs bytt ut V mot W men den skriver fortfarande inte ut ngt från databasen, jag får varken ngt felmeddelande lr ngt annat rutan blir bara tom

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

"Det starka är inte att aldrig kunna falla, det starta är att kunna resa sig efter ett fall"

Medlem sedan dec. 20001 626 inlägg
#10

Ingen som kan hjälpa mig??

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

"Det starka är inte att aldrig kunna falla, det starta är att kunna resa sig efter ett fall"

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